php下實現(xiàn)一個阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)
更新時間:2008年07月10日 23:45:00 作者:
最近因需要,寫了個“阿拉伯?dāng)?shù)字轉(zhuǎn)中文數(shù)字的函數(shù)”。搜索了精華區(qū)只見到一個類似的。
感覺到我的算法不錯,所以貼出來共享一下
如果要用于金額的轉(zhuǎn)換,對小數(shù)部分的處理要做一下修改
<?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); //如果有小數(shù),先遞歸處理小數(shù)
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;
}
//echo ch_num("12345006789001.123");
//echo ch_num("880079.1234");
echo ch_num("300045.0123");
?>
<?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); //如果有小數(shù),先遞歸處理小數(shù)
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;
}
//echo ch_num("12345006789001.123");
//echo ch_num("880079.1234");
echo ch_num("300045.0123");
?>
相關(guān)文章
深入php define()函數(shù)以及defined()函數(shù)的用法詳解
本篇文章是對php中的define()函數(shù)以及defined()函數(shù)的用法進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP入門教程之會話控制技巧(cookie與session)
這篇文章主要介紹了PHP入門教程之會話控制技巧,結(jié)合實例形式分析了cookie與session的具體使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-09-09
通用PHP動態(tài)生成靜態(tài)HTML網(wǎng)頁的代碼
最近研究PHP的一些開發(fā)技術(shù),發(fā)現(xiàn)PHP有很多ASP所沒有的優(yōu)秀功能,可以完成一些以前無法完成的功能,例如動態(tài)生成HTML靜態(tài)頁面,以減少服務(wù)器CPU的負載,提高用戶訪問的速度。2010-03-03
php關(guān)鍵字僅替換一次的實現(xiàn)函數(shù)
這篇文章主要介紹了php實現(xiàn)每個關(guān)鍵字僅需要替換一次,有時一個項目里面涉及到批量替換關(guān)鍵字的問題,本文針對控制替換次數(shù)進行研究,感興趣的小伙伴們可以參考一下2015-10-10
php輸出控制函數(shù)和輸出函數(shù)生成靜態(tài)頁面
這篇文章主要為大家詳細介紹了php輸出控制函數(shù)和輸出函數(shù)生成靜態(tài)頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-06-06
php偽協(xié)議實現(xiàn)命令執(zhí)行詳情
這篇文章主要介紹了php偽協(xié)議實現(xiàn)命令執(zhí)行詳情,文章圍繞主題展開詳細的內(nèi)容介紹,感興趣的朋友可以參考一下2022-06-06

