php把数字钱数转为中文钱数

在做法式的时辰,我们会碰到要把数字的钱数转为中文的年夜写钱数

工具/原料

  • php
  • sublime

方式/步骤

  1. 1

    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);

    }

  2. 2

    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;

    }

  3. 3

    挪用函数

    echo cny('120');

  4. 4

    挪用函数

    echo cny('120.18');

  5. 5

    小编在网站上找到良多的栗子,感觉这个是代码起码的,可是我在用的过程中,会报数组溢出等错误,所以此刻是小编革新过的代码。大师可以矫捷运用

注重事项

  • 数组溢出
  • 发表于 2018-08-30 00:00
  • 阅读 ( 241 )
  • 分类:其他类型

相关问题

0 条评论

请先 登录 后评论