將人民幣中金額數字轉化爲中文大寫

1.將人民幣中金額數字轉化爲中文大寫code

echo toChineseNumber(1234567890);//壹拾貳億叄仟肆佰伍拾陸萬柒仟捌佰玖拾圓
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("",cnyMapUnit(str_split($int),$cnygrees)),"")); 
    $ret = implode("",array_reverse(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; 
 }
相關文章
相關標籤/搜索