咸鱼韭菜

专注LANMP

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  /**
     * 处理数字转换成中文汉字(只处理到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  咸鱼韭菜  阅读(203)  评论(0编辑  收藏  举报