php如何实现数字转中文

2020-08-12 19:21:53

php数字转中文的实现方法:首先创建一个PHP示例文件;然后定义一个“cny”方法;接着在方法体内实现将数字拆分成整数小数,并分别赋值给变量;最后调用“cny”方法并输出转换结果即可。

推荐:《PHP教程》

在做程序的时候,我们会遇到要把数字的钱数转为中文的大写钱数

方法

function cny($money) {    $cnums=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");    $cnyunits=array("圆","角","分");    $grees=array("拾","佰","仟","万","拾","佰","仟","亿");    if(strpos($money,'.') !== false){ //拆分整数小数 分别赋值给变量         list($int,$dec)=explode(".",$money,2);    }else{        list($int,$dec)=[$money,0];    }    $dec=array_filter(array($dec[1],$dec[0])); //过滤分数    $ret=array_merge($dec,array(implode("",cny_to_unit(str_split($int),$grees)),"")); //先处理单位    $ret=implode("",array_reverse(cny_to_unit($ret,$cnyunits)));    return str_replace(array_keys($cnums),$cnums,$ret);}
function cny_to_unit($list,$units) {    $ul=count($units);    $xs=array();    foreach (array_reverse($list) as $x) { /反转数组便于处理        $l=count($xs);        if ($x!="0" || !($l%4)) {            if ($l != 0) {                $n=($x=='0'?'':$x).($units[($l-1)%$ul]);            }else{                $n=($x=='0'?'':$x);            }        }        else {            $n=is_numeric($xs[0][0])?$x:'';        }        array_unshift($xs,$n);    }    return $xs;}

调用函数

echo cny('120');

企业微信截图_15956442639401.png

调用函数

echo cny('120.18');

企业微信截图_15956442683106.png

小编在网站上找到很多的栗子,觉得这个是代码最少的,但是我在用的过程中,会报数组溢出等错误,所以现在是小编改造过的代码。大家可以灵活运用

相关文章 大家在看