PHP将人民币中金额数字转化为中文大写代码
主体代码:
function toChineseNumber($money){ $money = round($money,2); $cnynums = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'); $cnyunits = array('圆','角','分'); $cnygrees = array('拾','佰','仟','万','拾','佰','仟','亿'); list($int,$dec) = explode('.',$money,2); $dec = array_filter(array($dec[1],$dec[0])); $ret = array_merge($dec,array(implode('',$this->cnyMapUnit(str_split($int),$cnygrees)),'')); $ret = implode('',array_reverse($this->cnyMapUnit($ret,$cnyunits))); return str_replace(array_keys($cnynums),$cnynums,$ret); }
function cnyMapUnit($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; }
调用代码:
echo toChineseNumber($money);
相关文章: