利用PHP将阿拉伯数字转化为汉字时的处理办法

有木有遇到财务相关的开发,好端端的阿拉伯数字,非得整成汉字形式显示,这也就罢了,还得整成繁体汉字。很苦恼吧。下面将和你分享一下本人遇到需要利用PHP将阿拉伯数字转化为汉字时的处理办法,可以总结为一个函数,具体自己研究去吧。

  1. function num2char($num,$mode=true){ 
  2.     $char = array('零','一','二','三','四','五','六','七','八','九'); 
  3.     //$char = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖); 
  4.     $dw = array('','十','百','千','','万','亿','兆'); 
  5.     //$dw = array('','拾','佰','仟','','萬','億','兆'); 
  6.     $dec = '点';  //$dec = '點'; 
  7.     $retval = ''
  8.     if($mode){ 
  9.         preg_match_all('/^0*(\d*)\.?(\d*)/',$num$ar); 
  10.     }else
  11.         preg_match_all('/(\d*)\.?(\d*)/',$num$ar); 
  12.     } 
  13.     if($ar[2][0] != ''){ 
  14.         $retval = $dec . ch_num($ar[2][0],false); //如果有小数,先递归处理小数 
  15.     } 
  16.     if($ar[1][0] != ''){ 
  17.         $str = strrev($ar[1][0]); 
  18.         for($i=0;$i<strlen($str);$i++) { 
  19.             $out[$i] = $char[$str[$i]]; 
  20.             if($mode){ 
  21.                 $out[$i] .= $str[$i] != '0'$dw[$i%4] : ''
  22.                 if($str[$i]+$str[$i-1] == 0){ 
  23.                     $out[$i] = ''
  24.                 } 
  25.                 if($i%4 == 0){ 
  26.                     $out[$i] .= $dw[4+floor($i/4)]; 
  27.                 } 
  28.             } 
  29.         } 
  30.         $retval = join('',array_reverse($out)) . $retval
  31.     } 
  32.     return $retval

使用示例:

  1. echo '300045.0123:'.num2char('300045.0123'); 

转载请注明:代码家园 » 利用PHP将阿拉伯数字转化为汉字时的处理办法

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)