• 技术文章 >后端开发 >PHP问题

    php如何实现数字转中文

    藏色散人藏色散人2020-07-25 10:35:18原创1107

    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

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

    以上就是php如何实现数字转中文的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php 数字转中文
    上一篇:php如何删除临时文件 下一篇:php如何将字符串转成二进制
    线上培训班

    相关文章推荐

    • PHP $_POST提交表单中文乱码问题• php echo中文乱码怎么处理• PHP如何对中文进行转义?• php如何把中文转换成拼音

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网