文章详情
php数字金额转中文大写文本
Posted on 2024-01-01 12:46:51 by 主打一个C++
//封装函数
function numberToChinese($num) {
// 定义数字和单位数组
$char = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
$unit = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'];
// 转换为字符串并反转
$strNum = strrev((string)$num);
$len = strlen($strNum);
$result = '';
for ($i = 0; $i < $len; $i++) {
$index = (int)$strNum[$i];
$result = $char[$index] . $unit[$i] . $result;
}
// 去除连续的零和多余的单位
$result = preg_replace('/零(?=零|万|亿|$)/', '', $result);
$result = preg_replace('/(拾|佰|仟)(?=零|万|亿|$)/', '零', $result);
$result = preg_replace('/零{2,}/', '零', $result);
$result = preg_replace('/零万/', '万', $result);
$result = preg_replace('/零亿/', '亿', $result);
// 特殊处理结果
if (substr($result, 0, 1) == '零') $result = substr($result, 1);
if (substr($result, -1) == '零') $result = substr($result, 0, -1);
return $result;
}
//测试调用
echo numberToChinese(1234567890);
*转载请注明出处:原文链接:https://cpp.vin/page/112.html