有木有遇到财务相关的开发,好端端的阿拉伯数字,非得整成汉字形式显示,这也就罢了,还得整成繁体汉字。很苦恼吧。
下面将和你分享一下本人遇到需要利用PHP将阿拉伯数字转化为汉字时的处理办法,可以总结为一个函数,具体自己研究去吧。
<p>function num2char($num,$mode=true){</p> $char = array('零','一','二','三','四','五','六','七','八','九');<br /> //$char = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖);<br /> $dw = array('','十','百','千','','万','亿','兆');<br /> //$dw = array('','拾','佰','仟','','萬','億','兆');<br /> $dec = '点'; //$dec = '點';<br /> $retval = '';<br /> if($mode){<br /> preg_match_all('/^0*(\d*)\.?(\d*)/',$num, $ar);<br /> }else{<br /> preg_match_all('/(\d*)\.?(\d*)/',$num, $ar);<br /> }<br /> if($ar[2][0] != ''){<br /> $retval = $dec . ch_num($ar[2][0],false); //如果有小数,先递归处理小数<br /> }<br /> if($ar[1][0] != ''){<br /> $str = strrev($ar[1][0]);<br /> for($i=0;$i<strlen($str);$i++) {<br /> $out[$i] = $char[$str[$i]];<br /> if($mode){<br /> $out[$i] .= $str[$i] != '0'? $dw[$i%4] : '';<br /> if($str[$i]+$str[$i-1] == 0){<br /> $out[$i] = '';<br /> }<br /> if($i%4 == 0){<br /> $out[$i] .= $dw[4+floor($i/4)];<br /> }<br /> }<br /> }<br /> $retval = join('',array_reverse($out)) . $retval;<br /> }<br /> return $retval;<br /><p>}</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p>
<div class="aritcle_card">
<a class="aritcle_card_img" href="/ai/1104">
<img src="https://img.php.cn/upload/ai_manual/001/503/042/68b6c5d39a38c971.png" alt="阿里云-虚拟数字人">
</a>
<div class="aritcle_card_info">
<a href="/ai/1104">阿里云-虚拟数字人</a>
<p>阿里云-虚拟数字人是什么? ...</p>
<div class="">
<img src="/static/images/card_xiazai.png" alt="阿里云-虚拟数字人">
<span>2</span>
</div>
</div>
<a href="/ai/1104" class="aritcle_card_btn">
<span>查看详情</span>
<img src="/static/images/cardxiayige-3.png" alt="阿里云-虚拟数字人">
</a>
</div>
使用示例:
echo '300045.0123:'.num2char('300045.0123');//www.scutephp.com
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号