主体代码:
function toChineseNumber($money){ $money = round($money,2); $cnynums = array(\"零\",\"壹\",\"贰\",\"叁\",\"肆\",\"伍\",\"陆\",\"柒\",\"捌\",\"玖\"); $cnyunits = array(\"圆\",\"角\",\"分\"); $cnygrees = array(\"拾\",\"佰\",\"仟\",\"万\",\"拾\",\"佰\",\"仟\",\"亿\"); list($int,$dec) = explode(\".\",$money,2); $dec = array_filter(array($dec[1],$dec[0])); $ret = array_merge($dec,array(implode(\"\",$this->cnyMapUnit(str_split($int),$cnygrees)),\"\")); $ret = implode(\"\",array_reverse($this->cnyMapUnit($ret,$cnyunits))); return str_replace(array_keys($cnynums),$cnynums,$ret); }
function cnyMapUnit($list,$units) { $ul=count($units); $xs=array(); foreach (array_reverse($list) as $x) { $l=count($xs); if ($x!=\"0\" || !($l%4)) $n=($x==\'0\'?\'\':$x).($units[($l-1)%$ul]); else $n=is_numeric($xs[0][0])?$x:\'\'; array_unshift($xs,$n); } return $xs; }
调用代码:
echo toChineseNumber($money);