/** * 处理数字转换成中文汉字(只处理到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; }