PHP 实现阿拉伯数字金额转中文汉字金额

原创
2017/02/23 16:45
阅读数 495

    直接上代码:

function Money2China($num) {
    $zh_num = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    $zh_unit = ['分', '角', '元', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟'];
    if (!is_numeric(str_replace(',', '', $num))) {
        return $num;
    }
    $number = strrev(round(str_replace(',', '', $num), 2) * 100);
    $length = strlen($number);
    $ch_str = '';
    for ($length; $length > 0; $length--) {
        $index = $length - 1;
        if ($number[$index] == '0' && !in_array($zh_unit[$index], ['万', '元', '亿'])) {
            $ch_str.=$zh_num[$number[$index]];
        } elseif ($number[$index] == '0' && in_array($zh_unit[$index], ['万', '元', '亿'])) {
            $ch_str.= $zh_unit[$index];
        } else {
            $ch_str.=$zh_num[$number[$index]] . $zh_unit[$index];
        }
    }
    $format_str = trim(preg_replace(['/零{2,}/u', '/零万/', '/零元/', '/零亿/'], ['零', '万', '元', '亿'], $ch_str), '零');
    // 以元结尾的,拼接"整"字
    if (preg_match('/(分|角)/', $format_str) === 0) {
        $format_str.='整';
    }
    return $format_str;
}

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部