阿拉伯数字 转换 中文大写
<?php class ToChineseNumber { private $money = ""; private $cnynums = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"); private $cnyunits = array("圆","角","分"); private $cnygrees = array("拾","佰","仟","万","拾","佰","仟","亿","拾","佰","仟"); function __construct($money=0){ $this->money = round( $money , 2 ); } private function cnyMapUnit( $list , $units ) { $ul = count($units); $xs = array(); $list = array_reverse($list); while( list($keys , $vals) = each($list) ){ $l = count($xs); if ($vals != "0" || !($l%4) ){ $val = $vals . ( $units[ ($l-1)%$ul ] ); }else{ $val = is_numeric( $xs[0][0] ) ? $vals : ''; } array_unshift( $xs , $val ); } return $xs; } public function arr( $leng=0 , $suffix=false ){ list( $int , $dec ) = explode( "." , $this->money , 2 ); $cnygrees = $this->cnygrees; $cnynums = array_keys($this->cnynums); $temp = array(); $index = 0; if( $leng > 0 && $suffix !== false ){ for( $i=0; $i<$leng; $i++){ $cnygrees[$i] = $suffix; } } $data = $this->cnyMapUnit( str_split($int) , $cnygrees ); $data = array_reverse( $data ); while( list( $key , $val ) = each( $data ) ){ $val = str_replace( $cnynums , $this->cnynums , $val ); if( empty( $temp[ $index ] ) ){ $temp[ $index ] = ''; } $temp[ $index ] = $val . $temp[ $index ]; $index++; if( $index > $leng ){ $index = $leng; } } return array_reverse( $temp ); } } $to = new ToChineseNumber( 1892600 ); $to->arr( 4 , ''); // Array // ( // [0] => 壹佰捌拾玖 // [1] => 贰 // [2] => 陆 // [3] => 零 // [4] => 零 // )
相关推荐
-
PHP常用代码片段 php
2019-1-8
-
PHP的生成图片或文字水印的类 php
2019-1-7
-
生成二维码并指定地址跳转 php
2019-1-7
-
PHP时间处理函数 php
2019-1-8
-
百度地图计算两地现实距离 php
2019-1-7
-
PHP常用正则验证 php
2019-1-8
-
获取汉字首个拼音的函数 php
2019-1-7
-
PHP图片压缩类,高清无损 php
2019-1-8
-
nginx配置文件详解 php
2019-1-7
-
php整体分页 上一页 下一页 php
2019-1-13