要把數字轉成漢字
自己寫了一個
- function number2Chinese($num, $m = 1) {
- switch($m) {
- case 0:
- $CNum = array(
- case 0:
- $CNum = array(
- array('零','壹','貳','叁','肆','伍','陸','柒','捌','玖'),
- array('' ,'拾','佰','仟'),
- array('','萬','億','萬億')
- );
- break;
- default:
- $CNum = array(
- array('零','一','二','三','四','五','六','七','八','九'),
- array('','十','百','千'),
- array('','萬','億','萬億')
- ) ;
- break;
- }
-
- // $cNum = array('零','一','二','三','四','五','六' ,'七','八','九');
-
- if (is_integer($num)) {
- $int = (string)$num;
- } else if (is_numeric( $num)) {
- $num = explode('.', (string)floatval($num));
- $int = $num[0];
- $fl = isset($num[ 1]) ? $num[1] : FALSE;
- }
-
- // 長度
- $len = strlen($int);
-
- // 中文
- $ chinese = array();
-
- // 反轉的數字
- $str = strrev($int);
-
- for($i = 0; $i $s = array(0=>$str[$i], 1=>$str[$i+1], 2=>$str[$i+2], 3=> $str[$i+3]);
-
- $j = '';
- // 千位
- if ($s[3] !== '') {
- $ s[3] = (int) $s[3];
- if ($s[3] !== 0) {
- $j .= $CNum[0][$s[ 3]]. $CNum[1][3];
- } else {
- if ($s[2] != 0 || $s[1] != 0 || $s[0]! =0) {
- $j .= $CNum[0][0];
- }
- }
- }
- // 百位
- if ($s[2] ! == '' ) {
- $s[2] = (int) $s[2];
- if ($s[2] !== 0) {
- $j .= $CNum[ 0][$ s[2]].$CNum[1][2];
- } else {
- if ($s[3]!=0 && ($s[1] != 0 || $s[0 ]!=0) ) {
- $j .= $CNum[0][0];
- }
- }
- }
- // 十位
- if ($s[ 1] !== '') {
- $s[1] = (int) $s[1];
- if ($s[1] !== 0) {
- $j .= $CNum[0][$s[1]].$CNum[1][1];
- } else {
- if ($s[0]!=0 && $s[2 ] != 0 ) {
- $j .= $CNum[0][$s[1]];
- }
- }
- }
- // 位元
- if ( $s[0 ] !== '') {
- $s[0] = (int) $s[0];
- if ($s[0] !== 0) {
- $ j .= $ CNum[0][$s[0]].$CNum[1][0];
- } else {
-
- // $j .= $CNum[0][0 ];
-
- }
- }
-
- $j.=$CNum[2][$i/4];
- array_unshift($chinese, $j);
- }
-
- $chs = implode('', $chinese);
-
- if ($fl) {
- $chs .= '點';
- for($i= 0,$j =strlen($fl); $i $t = (int)$fl[$i];
- $chs.= $str[0][ $t];
- }
- }
-
return $chs; }
複製程式碼
- function number2Chinese($num, $m = 1) {
- switch($m) {
- case 0:
- $CNum = array(
- case 0:
- $CNum = array(
- array('零','壹','貳','叁','肆','伍','陸','柒','捌','玖'),
- array('' ,'拾','佰','仟'),
- array('','萬','億','萬億')
- );
- break;
- default:
- $CNum = array(
- array('零','一','二','三','四','五','六','七','八','九'),
- array('','十','百','千'),
- array('','萬','億','萬億')
- ) ;
- break;
- }
-
- // $cNum = array('零','一','二','三','四','五','六' ,'七','八','九');
-
- if (is_integer($num)) {
- $int = (string)$num;
- } else if (is_numeric( $num)) {
- $num = explode('.', (string)floatval($num));
- $int = $num[0];
- $fl = isset($num[ 1]) ? $num[1] : FALSE;
- }
-
- // 長度
- $len = strlen($int);
-
- // 中文
- $ chinese = array();
-
- // 反轉的數字
- $str = strrev($int);
-
- for($i = 0; $i $s = array(0=>$str[$i], 1=>$str[$i+1], 2=>$str[$i+2], 3=> $str[$i+3]);
-
- $j = '';
- // 千位
- if ($s[3] !== '') {
- $ s[3] = (int) $s[3];
- if ($s[3] !== 0) {
- $j .= $CNum[0][$s[ 3]]. $CNum[1][3];
- } else {
- if ($s[2] != 0 || $s[1] != 0 || $s[0]! =0) {
- $j .= $CNum[0][0];
- }
- }
- }
- // 百位
- if ($s[2] ! == '' ) {
- $s[2] = (int) $s[2];
- if ($s[2] !== 0) {
- $j .= $CNum[ 0][$ s[2]].$CNum[1][2];
- } else {
- if ($s[3]!=0 && ($s[1] != 0 || $s[0 ]!=0) ) {
- $j .= $CNum[0][0];
- }
- }
- }
- // 十位
- if ($s[ 1] !== '') {
- $s[1] = (int) $s[1];
- if ($s[1] !== 0) {
- $j .= $CNum[0][$s[1]].$CNum[1][1];
- } else {
- if ($s[0]!=0 && $s[2 ] != 0 ) {
- $j .= $CNum[0][$s[1]];
- }
- }
- }
- // 位元
- if ( $s[0 ] !== '') {
- $s[0] = (int) $s[0];
- if ($s[0] !== 0) {
- $ j .= $ CNum[0][$s[0]].$CNum[1][0];
- } else {
-
- // $j .= $CNum[0][0 ];
-
- }
- }
-
- $j.=$CNum[2][$i/4];
- array_unshift($chinese, $j);
- }
-
- $chs = implode('', $chinese);
-
- if ($fl) {
- $chs .= '點';
- for($i= 0,$j =strlen($fl); $i $t = (int)$fl[$i];
- $chs.= $str[0][ $t];
- }
- }
-
return $chs; }
複製程式碼 |