设为首页收藏本站

PHPIN.NET

 找回密码
 立即注册
查看: 497|回复: 0

[PHP类\函数] PHP将阿拉伯数字转化为汉字的函数

[复制链接]

374

主题

381

帖子

2558

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2558
发表于 2014-12-20 11:22:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
PHP将阿拉伯数字转化为汉字的函数
关键字词: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;
  33. }
复制代码
使用示例:
  1. echo '300045.0123:'.num2char('300045.0123');
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|PHPIN.NET ( 冀ICP备00000001号 )|网站地图  

GMT+8, 2016-12-10 20:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表