设为首页 收藏本站
查看: 906|回复: 0

[经验分享] php 阿拉伯数字转中文数字 方法

[复制链接]

尚未签到

发表于 2017-4-9 11:28:17 | 显示全部楼层 |阅读模式
php 阿拉伯数字转中文数字 方法

  <?php
function ch_num($num,$mode=true) {
$char = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
$dw = array("","拾","佰","仟","","萬","億","兆");
$dec = "點";
$retval = "";
if($mode)
preg_match_all("/^0*(/d*)/.?(/d*)/",$num, $ar);
else
preg_match_all("/(/d*)/.?(/d*)/",$num,$ar);
if($ar[2][0] != "")
$retval = $dec . ch_num($ar[2][0],false); //如果有小数,先递归处理小数
if($ar[1][0] != "") {
$str= strrev($ar[1][0]);
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[4+floor($i/4)];
}
}
$retval = join("",array_reverse($out)) . $retval;
}
return $retval;
}
//echoch_num("12345006789001.123");
//echo ch_num("880079.1234");
echoch_num("300045.0123");
  这个方法更为优秀一些.
  function toCNcap($data){
$capnum=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
$capdigit=array("","拾","佰","仟");
$subdata=explode(".",$data);
$yuan=$subdata[0];
$j=0; $nonzero=0;
for($i=0;$i<strlen($subdata[0]);$i++){
if(0==$i){ //确定个位
if($subdata[1]){
$cncap=(substr($subdata[0],-1,1)!=0)?"元":"元零";
}else{
$cncap="元";
}
}
if(4==$i){ $j=0; $nonzero=0; $cncap="万".$cncap; } //确定万位
if(8==$i){ $j=0; $nonzero=0; $cncap="亿".$cncap; } //确定亿位
$numb=substr($yuan,-1,1); //截取尾数
$cncap=($numb)?$capnum[$numb].$capdigit[$j].$cncap:(($nonzero)?"零".$cncap:$cncap);
$nonzero=($numb)?1:$nonzero;
$yuan=substr($yuan,0,strlen($yuan)-1); //截去尾数  
$j++;
}

if($subdata[1]){
$chiao=(substr($subdata[1],0,1))?$capnum[substr($subdata[1],0,1)]."角":"零";
$cent=(substr($subdata[1],1,1))?$capnum[substr($subdata[1],1,1)]."分":"零分";
}
$cncap .= $chiao.$cent."整";
$cncap=preg_replace("/(零)+/","//1",$cncap); //合并连续“零”
return $cncap;
}
  ?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-362361-1-1.html 上篇帖子: php基础学习-- isset函数和empty函数区别 下篇帖子: 新工作机会,asp.net php java dba等等
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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