将小写货币转化为大写RMB的函数
在论坛里看到了一位网友问如何将小写货币转化为大写RMB,我试着写了一个,拿出来和大家讨论一下,目前此函数只能处理千亿以下的数据,另外没有进行参数合法验证,我会进一步完善的,还请各位朋友多提宝贵意见,谢谢!
<?php
    
function moneytochinese($money)
    {
        
$unit=array("","拾","佰","千","角","分");
        
$num=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
        
$submoney=explode(".",$money);
        
$submoney_int=explode(",",$submoney[0]);
        
$submoney_int=join("",$submoney_int);
        
$submoney_ints=$submoney_int;
        for(
$i=0;$i<ceil(strlen($submoney_int)/4);$i++)
        {
            
$submoney_int_vol[$i]=substr($submoney_ints,-4);
            
$submoney_ints=substr($submoney_int,0,strlen($submoney_int)-($i+1)*4);
        }
        
$moneychinese="";
        for(
$i=count($submoney_int_vol)-1;$i>=0;$i--)
        {
            switch(
$i)
            {
                    case 
0:
                        
$units="";
                        break;
                    case 
1:
                        
$units="万";
                        break;
                    case 
2:
                        
$units="亿";
                        break;
            }
            for(
$j=0;$j<strlen($submoney_int_vol[$i]);$j++)
            {
                
$nums=substr($submoney_int_vol[$i],$j,1);
                
$moneychinese.=$num[$nums].$unit[strlen($submoney_int_vol[$i])-1-$j];
            }
            
$moneychinese.=$units;
        }
        
$moneychinese.="圆";
        for(
$i=0;$i<2;$i++)
        {
            
$moneychinese.=$num[substr($submoney[1],$i,1)].$unit[$i+4];
        }
        
$moneychinese.="整";;
        return(
$moneychinese);
    }
    echo 
"121,121,122.12";
    echo 
moneytochinese("121,121,122.12");
?>