php 把數(shù)字轉(zhuǎn)換成漢字的代碼
直接上實(shí)例,寫(xiě)到 千億上了。
/** * @author ja頌 * 把數(shù)字1-1億換成漢字表述,如:123->一百二十三 * @param [num] $num [數(shù)字] * @return [string] [string] */ function numToWord($num) { $chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九'); $chiUni = array('','十', '百', '千', '萬(wàn)', '億', '十', '百', '千'); $chiStr = ''; $num_str = (string)$num; $count = strlen($num_str); $last_flag = true; //上一個(gè) 是否為0 $zero_flag = true; //是否第一個(gè) $temp_num = null; //臨時(shí)數(shù)字 $chiStr = '';//拼接結(jié)果 if ($count == 2) {//兩位數(shù) $temp_num = $num_str[0]; $chiStr = $temp_num == 1 ? $chiUni[1] : $chiNum[$temp_num].$chiUni[1]; $temp_num = $num_str[1]; $chiStr .= $temp_num == 0 ? '' : $chiNum[$temp_num]; }else if($count > 2){ $index = 0; for ($i=$count-1; $i >= 0 ; $i--) { $temp_num = $num_str[$i]; if ($temp_num == 0) { if (!$zero_flag && !$last_flag ) { $chiStr = $chiNum[$temp_num]. $chiStr; $last_flag = true; } }else{ $chiStr = $chiNum[$temp_num].$chiUni[$index%9] .$chiStr; $zero_flag = false; $last_flag = false; } $index ++; } }else{ $chiStr = $chiNum[$num_str[0]]; } return $chiStr; } $num = 150; echo numToWord($num);
方法二:
<?php /** * 數(shù)字轉(zhuǎn)換為中文 * @param string|integer|float $num 目標(biāo)數(shù)字 * @param integer $mode 模式[true:金額(默認(rèn)),false:普通數(shù)字表示] * @param boolean $sim 使用小寫(xiě)(默認(rèn)) * @return string */ function number2chinese($num,$mode = true,$sim = true){ if(!is_numeric($num)) return '含有非數(shù)字非小數(shù)點(diǎn)字符!'; $char = $sim ? array('零','一','二','三','四','五','六','七','八','九') : array('零','壹','貳','叁','肆','伍','陸','柒','捌','玖'); $unit = $sim ? array('','十','百','千','','萬(wàn)','億','兆') : array('','拾','佰','仟','','萬(wàn)','億','兆'); $retval = $mode ? '元':'點(diǎn)'; //小數(shù)部分 if(strpos($num, '.')){ list($num,$dec) = explode('.', $num); $dec = strval(round($dec,2)); if($mode){ $retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分"; }else{ for($i = 0,$c = strlen($dec);$i < $c;$i++) { $retval .= $char[$dec[$i]]; } } } //整數(shù)部分 $str = $mode ? strrev(intval($num)) : strrev($num); for($i = 0,$c = strlen($str);$i < $c;$i++) { $out[$i] = $char[$str[$i]]; if($mode){ $out[$i] .= $str[$i] != '0'? $unit[$i%4] : ''; if($i>1 and $str[$i]+$str[$i-1] == 0){ $out[$i] = ''; } if($i%4 == 0){ $out[$i] .= $unit[4+floor($i/4)]; } } } $retval = join('',array_reverse($out)) . $retval; return $retval; } //實(shí)例調(diào)用===================================================== $num = '0123648867.789'; echo $num,'<br>'; //普通數(shù)字的漢字表示 echo '普通:',number2chinese($num,false),''; echo '<br>'; //金額漢字表示 echo '金額(簡(jiǎn)體):',number2chinese($num,true),''; echo '<br>'; echo '金額(繁體):',number2chinese($num,true,false);
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- PHP實(shí)現(xiàn)十進(jìn)制數(shù)字與二十六進(jìn)制字母串相互轉(zhuǎn)換操作示例
- php使用json_decode后數(shù)字對(duì)象轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的解決方法
- php實(shí)現(xiàn)阿拉伯?dāng)?shù)字和羅馬數(shù)字相互轉(zhuǎn)換的方法
- php短網(wǎng)址和數(shù)字之間相互轉(zhuǎn)換的方法
- PHP實(shí)現(xiàn)將科學(xué)計(jì)數(shù)法轉(zhuǎn)換為原始數(shù)字字符串的方法
- php中base_convert()進(jìn)制數(shù)字轉(zhuǎn)換函數(shù)實(shí)例
- PHP中IP地址與整型數(shù)字互相轉(zhuǎn)換詳解
- php導(dǎo)出csv格式數(shù)據(jù)并將數(shù)字轉(zhuǎn)換成文本的思路以及代碼分享
- PHP 金額數(shù)字轉(zhuǎn)換成英文
- PHP數(shù)字金額轉(zhuǎn)換成中文大寫(xiě)顯示
相關(guān)文章
PHP實(shí)現(xiàn)廣度優(yōu)先搜索算法(BFS,Broad First Search)詳解
這篇文章主要介紹了PHP實(shí)現(xiàn)廣度優(yōu)先搜索算法(BFS,Broad First Search),簡(jiǎn)單描述了廣度優(yōu)先搜索算法的原理并結(jié)合具體實(shí)例分析了php實(shí)現(xiàn)廣度優(yōu)先搜索算法的步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09PHP實(shí)現(xiàn)的隨機(jī)IP函數(shù)【國(guó)內(nèi)IP段】
這篇文章主要介紹了PHP實(shí)現(xiàn)的隨機(jī)IP函數(shù),可實(shí)現(xiàn)輸出國(guó)內(nèi)IP段的功能,涉及php字符串與數(shù)組的計(jì)算操作相關(guān)技巧,需要的朋友可以參考下2016-07-07PHP基于Closure類(lèi)創(chuàng)建匿名函數(shù)的方法詳解
這篇文章主要介紹了PHP基于Closure類(lèi)創(chuàng)建匿名函數(shù)的方法,結(jié)合實(shí)例形式詳細(xì)分析了Closure 類(lèi)的功能、常用函數(shù)使用技巧及相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08WampServer搭建php環(huán)境時(shí)遇到的問(wèn)題匯總
這篇文章主要介紹了WampServer搭建php環(huán)境時(shí)遇到的常見(jiàn)問(wèn)題的解決辦法匯總,以上所述就是本文的全部?jī)?nèi)容了。2015-07-07phpadmin如何導(dǎo)入導(dǎo)出大數(shù)據(jù)文件及php.ini參數(shù)修改
新版本的phpadmin導(dǎo)入限定是8M,老版本的可能2M;如果遇到幾十兆的該怎么辦呢?接下來(lái)本文將介紹詳細(xì)的修改方法,感興趣的你可不要錯(cuò)過(guò)了哈,或許本文提供的知識(shí)點(diǎn)對(duì)你有所幫助2013-02-02CentOS系統(tǒng)中PHP安裝擴(kuò)展的方式匯總
本文給大家匯總介紹了CentOS系統(tǒng)中PHP安裝拓展的方式,主要有 包管理式 的 yum 安裝、pecl 安裝,以及 源碼編譯安裝。總結(jié)的非常全面,推薦給大家。2017-04-04PHP獲取ip對(duì)應(yīng)地區(qū)和使用網(wǎng)絡(luò)類(lèi)型的方法
這篇文章主要介紹了PHP獲取ip對(duì)應(yīng)地區(qū)和使用網(wǎng)絡(luò)類(lèi)型的方法,實(shí)例分析了php通過(guò)調(diào)用ip138數(shù)據(jù)庫(kù)獲取IP及網(wǎng)絡(luò)類(lèi)型的技巧,需要的朋友可以參考下2015-03-03