PHP 實現人民幣數字轉漢字大寫

在開發項目的時候,我們有時候會碰到人民幣轉漢字大寫的小需求。在此我的分享一下自己寫的一個小函數,歡迎有需求的朋友盡情享用。

/**
* 人民幣金額轉大寫
* @param int $rmb 人民幣金額
* @param int $maxLength 顯示長度
* @return string
*/
function convertRmbToUpper($rmb = 0,$maxLength = 0){
//大寫符號
$upperSymbol = array(
'0' => '零',
'1' => '壹',
'2' => '貳',
'3' => '叄',
'4' => '肆',
'5' => '伍',
'6' => '陸',
'7' => '柒',
'8' => '捌',
'9' => '玖'
);
//單位符號
$unitSymbol = array(
'-2' => '分',
'-1' => '角',
'0' => '整',
'1' => '元',
'2' => '拾',
'3' => '佰',
'4' => '仟',
'5' => '萬',
'6' => '拾',
'7' => '佰',
'8' => '仟',
'9' => '億',
);
$upperRmb = '';
if(empty($maxLength)){
$maxLength = 0;
}
$rmbSplit = explode('.',$rmb);
//整數部分
$length = strlen($rmbSplit[0]);
if($length > $maxLength){
$maxLength = $length;
}
for($i=0;$iif($i < $length){
$char = substr($rmbSplit[0],$i,1);
$unitChar = $unitSymbol[$length-$i];
$upperRmb .= $upperSymbol[$char].$unitChar;
}else{
$upperRmb = $unitSymbol[$i+1] . $upperRmb;
}
}
//小數部分
if(!isset($rmbSplit[1])){
//如果沒有小部分,默認填充2位小數
$rmbSplit[1] = '00';
}
$length = strlen($rmbSplit[1]);
for($i=0;$i$char = substr($rmbSplit[1],$i,1);
$unitChar = $unitSymbol[-($i+1)];
$upperRmb .= $upperSymbol[$char].$unitChar;
}
return $upperRmb;
}

PHP 實現人民幣數字轉漢字大寫


分享到:


相關文章: