PHP: 英文的數字值 轉換成 阿拉伯數字的值 程式

這星期臨時需要一個將英文的數字值, 轉換成 阿拉伯數字的程式, 發現怎麼找都是 數字 => 英文, 就是找不到 英文 => 數字.(需求就是同 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.. 看有沒有善心人士肯幫我加上小數的轉換吧~~

完整程式如下:

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料