<?php echo spellnumber(10120013201); function spellnumber($money){ //數字大寫 $unt_th = array("", "拾", "佰", "仟"); $unt_te = array("元整", "萬", "億", "兆", "京"); $money_ch = array("零", "壹", "貳", "參", "肆", "伍", "陸", "柒", "捌", "玖"); //將數字拆開 $money = str_split($money); krsort($money); //每4位數拆成一個陣列 $money = array_chunk($money, 4); $level = 0; foreach ($money as $num){ krsort($num); $dec = 0; $num = implode("", $num); $zero = ""; $mast = $num; $flag = false; while($num > 0){ //十進位計算,取餘數 $mod = $num % 10; if($mod > 0){ $flag = true; //大寫數字 + 單位 + 零值 $zero = $money_ch[$mod] . $unt_th[$dec] . $zero ; }else if ($mod == 0){ //處理「零」的顯示 if ($flag && ($level <= 1 || ($num && $mast%10 > 0))){ $zero = "0" . $zero; }else{ $zero = "" ; } } $num = intval($num / 10); $dec += 1; //進位 $big_number[$level] = $zero.$unt_te[$level]; } $level += 1; } krsort($big_number); $big_numbering = implode("", $big_number); return preg_replace('/0+/','零',$big_numbering); //中間連接多個0時,就直接顯示一個零 } ?>
輸出結果:
壹佰零壹億貳仟零壹萬參仟貳佰零壹元整