处理数字转换成中文

  /**
     * 处理数字转换成中文汉字(只处理到99999的数字)
     * @param intger $number  数字
     * @return string $char 中文汉字
     * @author liujinghai
     */
    public static function number2chinese($number) {
        $bitsNumber = array('零','一','二','三','四','五','六','七','八','九'); //数字
        $nuitNumber = array('','十','百','千','万'); //单位
        //不处理小数不能超过99999
        $number = intval($number);
        if($number > 99999 || $number < 0) {
            return '';
        }
        if($number == 0) {
            return '零';
        }
        //循环数字
        $str = array();
        $number = strrev($number);
        for($i=0;$i<strlen($number);$i++) {
            $str[] = ($number[$i] != '0')? $nuitNumber[$i%5] : "";
            $str[] = $bitsNumber[$number[$i]];
        }
        //合并数组
        $char = implode('', array_reverse($str));
        //用正则去掉两个零或者有零结尾的情况
        $char = preg_replace('/零零|零$/', '', $char);
        //对于一十到二十以内的数字之间用十几表示
        $tenNumber = array('一十','一十一','一十二','一十三','一十四','一十五','一十六','一十七','一十八','一十九');
        if(in_array($char, $tenNumber)) {
            $char = str_replace($tenNumber, '十', $char);
        }
        return $char;
    }

 

posted on 2017-02-22 10:03 咸鱼韭菜 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/pengcz/p/6427560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值