admin 发表于 2014-12-20 11:22:37

PHP将阿拉伯数字转化为汉字的函数

PHP将阿拉伯数字转化为汉字的函数
关键字词:PHP函数,数字转换
有木有遇到财务相关的开发,好端端的阿拉伯数字,非得整成汉字形式显示,这也就罢了,还得整成繁体汉字。很苦恼吧。下面将和你分享一下本人遇到需要利用PHP将阿拉伯数字转化为汉字时的处理办法,可以总结为一个函数,具体自己研究去吧。 function num2char($num,$mode=true){
      $char = array('零','一','二','三','四','五','六','七','八','九');
      //$char = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖);
      $dw = array('','十','百','千','','万','亿','兆');
      //$dw = array('','拾','佰','仟','','萬','億','兆');
      $dec = '点';//$dec = '點';
      $retval = '';
      if($mode){
                preg_match_all('/^0*(\d*)\.?(\d*)/',$num, $ar);
      }else{
                preg_match_all('/(\d*)\.?(\d*)/',$num, $ar);
      }
      if($ar != ''){
                $retval = $dec . ch_num($ar,false); //如果有小数,先递归处理小数
      }
      if($ar != ''){
                $str = strrev($ar);
                for($i=0;$i<strlen($str);$i++) {
                        $out[$i] = $char[$str[$i]];
                        if($mode){
                              $out[$i] .= $str[$i] != '0'? $dw[$i%4] : '';
                              if($str[$i]+$str[$i-1] == 0){
                                        $out[$i] = '';
                              }
                              if($i%4 == 0){
                                        $out[$i] .= $dw;
                              }
                        }
                }
                $retval = join('',array_reverse($out)) . $retval;
      }
      return $retval;
}使用示例: echo '300045.0123:'.num2char('300045.0123');
页: [1]
查看完整版本: PHP将阿拉伯数字转化为汉字的函数