首頁 > 後端開發 > PHP問題 > php如何實現數位轉中文

php如何實現數位轉中文

藏色散人
發布: 2023-03-03 10:14:01
原創
3767 人瀏覽過

php數字轉中文的實作方法:先建立一個PHP範例檔;然後定義一個「cny」方法;接著在方法體內實作將數字拆分成整數小數,並分別賦值給變數;最後調用“cny”方法並輸出轉換結果即可。

php如何實現數位轉中文

推薦:《PHP教學

在做程式的時候,我們會遇到要把數字的錢數轉為中文的大寫錢數

方法

function cny($money) {
    $cnums=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
    $cnyunits=array("圆","角","分");
    $grees=array("拾","佰","仟","万","拾","佰","仟","亿");
    if(strpos($money,'.') !== false){ //拆分整数小数 分别赋值给变量
         list($int,$dec)=explode(".",$money,2);
    }else{
        list($int,$dec)=[$money,0];
    }
    $dec=array_filter(array($dec[1],$dec[0])); //过滤分数
    $ret=array_merge($dec,array(implode("",cny_to_unit(str_split($int),$grees)),"")); //先处理单位
    $ret=implode("",array_reverse(cny_to_unit($ret,$cnyunits)));
    return str_replace(array_keys($cnums),$cnums,$ret);
}
登入後複製
function cny_to_unit($list,$units) {
    $ul=count($units);
    $xs=array();
    foreach (array_reverse($list) as $x) { /反转数组便于处理
        $l=count($xs);
        if ($x!="0" || !($l%4)) {
            if ($l != 0) {
                $n=($x=='0'?'':$x).($units[($l-1)%$ul]);
            }else{
                $n=($x=='0'?'':$x);
            }
        }
        else {
            $n=is_numeric($xs[0][0])?$x:'';
        }
        array_unshift($xs,$n);
    }
    return $xs;
}
登入後複製

呼叫函數

echo cny('120');
登入後複製

php如何實現數位轉中文

呼叫函數

echo cny('120.18');
登入後複製

php如何實現數位轉中文

小編在網站上找到很多的栗子,覺得這個是程式碼最少的,但是我在用的過程中,會報數組溢出等錯誤,所以現在是小編改造過的程式碼。大家可以靈活運用

以上是php如何實現數位轉中文的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板