這星期臨時需要一個將英文的數字值, 轉換成 阿拉伯數字的程式, 發現怎麼找都是 數字 => 英文, 就是找不到 英文 => 數字.(需求就是同 English-Number Translator 這篇).
大致要做的就是如下的例子:
six => 6
negative seven hundred twenty nine => -729
one million one hundred one => 1000101
找不到就只好自己寫一個, 主要是用下面這個 Array 來做, 意思就是不在此 Array 的, 此 function 就沒辦法做轉換了.(超過 billion 的, php 的 integer 長度也不夠, 不然應該是直接加進 array mapping 就可以動了)
$english2number = array(
'negative' => -1,'zero' => 0,
'one' => 1,
'two' => 2,
'three' => 3,
'four' => 4,
'five' => 5,
'six' => 6,
'seven' => 7,
'eight' => 8,
'nine' => 9,
'ten' => 10,
'eleven' => 11,
'twelve' => 12,
'thirteen' => 13,
'fourteen' => 14,
'fifteen' => 15,
'sixteen' => 16,
'seventeen' => 17,
'eighteen' => 18,
'nineteen' => 19,
'twenty' => 20,
'thirty' => 30,
'forty' => 40,
'fifty' => 50,
'sixty' => 60,
'seventy' => 70,
'eighty' => 80,
'ninety' => 90,
'hundred' => 100,
'thousand' => 1000,
'million' => 1000000,
'billion' => 1000000000,
);
使用方法: English2ArabicNumeral('one hundred thousand and thirty four hundred') => 103400
某長輩指導, 程式要 Release 要記得寫 License, 所以挑一個最短的 License 來寫, 就選 MIT License 吧~
不過, 這類 Release, 我是比較偏好 GPL, 希望有人改良程式, 可以告訴我~, 但是 GPL 太長了.. 放棄.... 還是用 MIT 吧~ 😛
目前程式只做整數轉換, 小數那些.. 放棄.. Orz.. 看有沒有善心人士肯幫我加上小數的轉換吧~~
完整程式如下: