PHP 数字转换为大写函数

当我们在写支付账单的时候需要填写数字金额的大写,说真的平时没写还真写不出来,为了以后不出现尴尬的场面,还特意去练了那十个字。哈哈,当然,我们在php中也可以转换的,于是有了下面这个转换函数:

/**
 * 金额的小写转大写
 * @param $ns int 输入的数字
 */

function cny($ns) {
    static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),
    $cnyunits = array("圆", "角", "分"),
    $grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");
    list($ns1, $ns2) = explode(".", $ns, 2);
    $ns2 = array_filter(array($ns2[1], $ns2[0]));
    $ret = array_merge($ns2, array(implode("", _cny_map_unit(str_split($ns1), $grees)), ""));
    $ret = implode("", array_reverse(_cny_map_unit($ret, $cnyunitss)));
    return str_replace(array_keys($cnums), $cnums, $ret);
}

function _cny_map_unit($list, $units) {
    $ul = count($units);
    $xs = array();
    foreach (array_reverse($list) as $x) {
        $l = count($xs);
        if ($x != "0" || !($l % 4))
            $n = ($x == '0' ? '' : $x) . ($units[($l - 1) % $ul]);
        else
            $n = is_numeric($xs[0][0]) ? $x : '';
        array_unshift($xs, $n);
    }
    return $xs;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 9,371评论 1 66
  • Awesome PHP 一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库、配置工具、W...
    guanguans阅读 11,226评论 0 47
  • 特别说明,为便于查阅,文章转自https://github.com/getify/You-Dont-Know-JS...
    杀破狼real阅读 3,421评论 0 0
  • 体验时间:2017-12-06 体验者:黄鸿杰 影城名称:东莞虎门万达影城店 职位:服务员 秋风起,膏蟹肥,祥哥是...
    Nicholas_5df6阅读 6,940评论 2 0
  • 很多时候我们都知道证书并没有什么用 可是为什么别人有 你没有? 很多时候证书可能只是个结果 没有去争取过,努力过 ...
    唐唐charming阅读 1,792评论 0 0

友情链接更多精彩内容