人民幣金額數字轉中文大寫的php函數

來源:互聯網
上載者:User
  1. /**

  2. 人民幣金額數字轉中文大寫
  3. link:bbs.it-home.org
  4. date:2013-2-28
  5. */
  6. function cny($ns) {
  7. static $cnums=array("零","壹","貳","三","肆","伍","陸","柒","捌","玖"),
  8. $cnyunits=array("圓","角","分"),
  9. $grees=array("拾","佰","仟","萬","拾","佰","仟","億");
  10. list($ns1,$ns2)=explode(".",$ns,2);
  11. $ns2=array_filter(array($ns2[1],$ns2[0]));
  12. $ret=array_merge($ns2,array(implode("",_cny_map_unit(str_split($ns1),$grees)),""));
  13. $ret=implode("",array_reverse(_cny_map_unit($ret,$cnyunits)));
  14. return str_replace(array_keys($cnums),$cnums,$ret);
  15. }

  16. function _cny_map_unit($list,$units) {

  17. $ul=count($units);
  18. $xs=array();
  19. foreach (array_reverse($list) as $x) {
  20. $l=count($xs);
  21. if ($x!="0" || !($l%4)) $n=($x=='0'?'':$x).($units[($l-1)%$ul]);
  22. else $n=is_numeric($xs[0][0])?$x:'';
  23. array_unshift($xs,$n);
  24. }
  25. return $xs;
  26. }
  27. ?>

複製代碼

使用方法:直接傳遞數字參數以下執行個體列印出大寫的數字,輸出結果:壹萬貳仟壹佰貳拾壹圓

  1. echo cny('12121');
  2. ?>
複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.