PHP 数字转换为大写函数

Php  

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

  1. /**
  2. * 金额的小写转大写
  3. * @param $ns int 输入的数字
  4. */
  5. function cny($ns) {
  6. static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),
  7. $cnyunits = array("圆", "角", "分"),
  8. $grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");
  9. list($ns1, $ns2) = explode(".", $ns, 2);
  10. $ns2 = array_filter(array($ns2[1], $ns2[0]));
  11. $ret = array_merge($ns2, array(implode("", _cny_map_unit(str_split($ns1), $grees)), ""));
  12. $ret = implode("", array_reverse(_cny_map_unit($ret, $cnyunitss)));
  13. return str_replace(array_keys($cnums), $cnums, $ret);
  14. }
  15. function _cny_map_unit($list, $units) {
  16. $ul = count($units);
  17. $xs = array();
  18. foreach (array_reverse($list) as $x) {
  19. $l = count($xs);
  20. if ($x != "0" || !($l % 4))
  21. $n = ($x == '0' ? '' : $x) . ($units[($l - 1) % $ul]);
  22. else
  23. $n = is_numeric($xs[0][0]) ? $x : '';
  24. array_unshift($xs, $n);
  25. }
  26. return $xs;
  27. }


评论 0

发表评论

Top