PHP数字金额转中文大写金额

今天开发一个项目功能的时候突然需要将数字金额转换成大写中文金额,故在百度搜索了一翻,再针对性都修改一点点,记录此处。。

    //金额转汉字大写
    function cny($ns){
        static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
        $cnyunits = array("圆", "角", "分");
        $grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");

        $_cny_map_unit = function ($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;
        };

        list($ns1, $ns2) = explode(".", $ns, 2);
        $ns2 = array_filter(array($ns2[1], $ns2[0]));
        $ret = array_merge($ns2, array(implode("", $_cny_map_unit(str_split($ns1), $grees)), ""));
        $ret = implode("", array_reverse($_cny_map_unit($ret, $cnyunits)));
        return str_replace(array_keys($cnums), $cnums, $ret);
    }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值