PHP人民币小写数字转大写

 2734

PHP在做财务数据相关业务的时候,经常会用到人民币金额转成大写的问题,站长图库找了一下,收集到这段代码,非常方便,有喜欢的收藏一下。


PHP人民币小写数字转大写


  1. <?php
  2. $data = $_GET['data'];
  3. function china_cny($ns) {
  4.  
  5.     static $cnums = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"),
  6.  
  7.     $cnyunits = array("圆", "角", "分","厘","毫"),
  8.  
  9.     $grees = array("拾", "佰", "仟", "万", "拾", "佰", "仟", "亿");
  10.  
  11.     list($ns1, $ns2) = explode(".", $ns, 4);
  12.     $ns2 = array_filter(array($ns2[3],$ns2[2],$ns2[1], $ns2[0]));
  13.  
  14.     //$ns2 = array_filter(array($ns2[1], $ns2[0]));
  15.  
  16.     $ret = array_merge($ns2, array(implode("", _cny_map_unit(str_split($ns1), $grees)), ""));
  17.  
  18.     $ret = implode("", array_reverse(_cny_map_unit($ret, $cnyunits)));
  19.  
  20.     return str_replace(array_keys($cnums), $cnums, $ret);
  21.  
  22. }
  23.  
  24. function _cny_map_unit($list, $units) {
  25.     $ul = count($units);    $xs = array();    
  26.  
  27.     foreach (array_reverse($list) as $x) {        
  28.  
  29.     $l = count($xs);        
  30.  
  31.     if ($x != "0" || !($l % 4))            
  32.  
  33.     $n = ($x == '0' ? '' : $x) . ($units[($l - 1) % $ul]);        
  34.  
  35.     else
  36.  
  37.             $n = is_numeric($xs[0][0]) ? $x : '';
  38.  
  39.         array_unshift($xs, $n);
  40.  
  41.     }     
  42.     return $xs; 
  43. }
  44. echo $data."元</br>";
  45. echo china_cny($data);
  46. ?>


演示:

PHP人民币小写数字转大写

本文网址:https://www.zztuku.com/detail-12579.html
站长图库 - PHP人民币小写数字转大写
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐