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 实现人民币数字转汉字大写


分享到:


相關文章: