為了不讓單位重覆,還要分割跑迴圈,實在有點麻煩,所以就改寫個比較容易理解的作法,一個迴圈搞定!
function num2str($number){
#中文數字陣列
$numb_arr=array('零','壹','貳','參','肆','伍','陸','柒','捌','玖');
#單位陣列
$unit_arr=array('元','拾','佰','仟','萬','拾','佰','仟','億','拾','佰','仟','兆','拾','佰','仟','京');
#過濾逗號
$newString = str_replace(',', '', $number);
#字串長度
$length = strlen($newString);
$i=0;
do{
#依序取出一位數
$n = substr($newString, -$length + $i, 1);
if(0==$n){#直接為0且不加單位
$total .= 0;
}else{
#中文數字 + 單位
$total .= $numb_arr[$n] . $unit_arr[($length - 1) - $i];
}
$i++;
}while($i < $length);
#取代重複的0
return preg_replace('/0+/', '零', $total);
}

