效果图
核心:返回几佰几仟几元几角几分,对金额进行拆分
核心代码:
/**
* 获取金额对应中文大写,返回对应的数组,如元对应的中文金额数字
* @param $amount 金额
* @param int $type 是否获取小数
* @return array 数组
*/
function convertAmountToCn($amount, $type = 1)
{
// 预定义中文转换的数组
$digital = array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
if ($amount == 0) {
$arr = [];
$arr['元'] = '零';
$arr['角'] = '零';
$arr['分'] = '零';
return $arr;
}
if (strlen($amount) > 10) {
return "不支持千万及更高金额";
}
// 预定义单位转换的数组
$position = array('仟1', '佰1', '拾1', '亿', '仟2', '佰2', '拾2', '万', '仟3', '佰3', '拾3', '元');
// 将金额的数值字符串拆分成数组
$amountArr = explode('.', $amount);
// 将整数位的数值字符串拆分成数组
$integerArr = str_split($amountArr[0], 1);
$key_fee = [];
// 将整数部分替换成大写汉字
$result = '';
$integerArrLength = count($integerArr);
$positionLength = count($position);
for ($i=0; $i<$integerArrLength; $i++) {
//$result = $result . $digital[$integerArr[$i]]. $position[$positionLength - $integerArrLength + $i];
$key_fee[$position[$positionLength - $integerArrLength + $i]] = $digital[$integerArr[$i]];
}
// 如果小数位也要转换
if ($type == 1)
{
// 将小数位的数值字符串拆分成数组
$decimalArr = str_split($amountArr[1], 1);
// 将小数部分替换成大写汉字
//$result = $result . $digital[$decimalArr[0]] . '角' . $digital[$decimalArr[1]] . '分';
$key_fee['角'] = $digital[$decimalArr[0]];
$key_fee['分'] = $digital[$decimalArr[1]];
}
return $key_fee;
}