金額大小寫轉化、阿拉伯數字轉大寫數字,大寫數字轉阿拉伯數字
阿新 • • 發佈:2019-01-24
題:請寫個程式,將類似下面的大寫金額轉化為阿拉伯數字。
大寫金額樣例:玖仟伍佰零玖億壹佰零玖萬玖仟伍佰壹拾捌元整。
實現方式:
1、先來一個看起來比較高大上的有技巧的更適合裝逼的一種方式:利用函式 str_replace 來實現
這個方法雖然看起來比較高大上,但是str_replace的效能是公認的差。$a = "玖仟伍佰零玖億壹佰零玖萬玖仟伍佰壹拾捌元整"; $s = str_replace(array('壹','貳','叄','肆','伍','陸','柒','捌','玖','零','仟','佰','億','整','元','拾','萬'), array(1,2,3,4,5,6,7,8,9,0,'','','','','','',''), $a); echo $s;
2、換一種效能相對好很多的做法,利用陣列下標來實現。
$str = "玖仟伍佰零玖億壹佰零玖萬玖仟伍佰壹拾捌元整"; $capital = array('壹','貳','叄','肆','伍','陸','柒','捌','玖','零'); $relationship = array('壹' => 1,'貳' => 2,'叄' => 3,'肆' => 4,'伍' => 5,'陸' => 6,'柒' => 7,'捌' => 8,'玖' => 9,'零' => 0); $letter = ''; for ($i=0; $i<mb_strlen($str); $i++) { $s = mb_substr($str, $i, 1); if (in_array($s, $capital)) { $letter .= $relationship[$s]; } } echo $letter;
以上是我列出來的兩個解決方案。
下面列幾個涉及的相關函式
2、子字串替換 str_replace 這個最經常用的是敏感詞過濾 之後詳細說。