>백엔드 개발 >PHP 튜토리얼 >아라비아 숫자를 한자로 변환(대문자 및 소문자)

아라비아 숫자를 한자로 변환(대문자 및 소문자)

WBOY
WBOY원래의
2016-07-25 09:01:441672검색
숫자를 한자로 변환하려면
제가 직접 썼어요
  1. 함수2중국어($num, $m = 1) {
  2. 스위치($m) {
  3. 사례 0:
  4. $CNum = 배열(
  5. array('제로','1','2','3','4','5','lu','qi','8','jiu'),
  6. array('' ,'shi','hundred','仟'),
  7. array('','million','billion','trillion')
  8. );
  9. break;
  10. 기본값:
  11. $CNum = array(
  12. array('제로','1','2','3','4','5','6','7','8',' 9 '),
  13. array('','ten','hundred','thousand'),
  14. array('','ten 천','billion','trillion')
  15. ) ;
  16. break;
  17. }
  18. // $cNum = array('zero','one','two',' three','four','five','six' , '7','8','9');
  19. if (is_integer($num)) {
  20. $int = (string)$num;
  21. } else if (is_numeric( $ num)) {
  22. $num = 폭발('.', (string)floatval($num));
  23. $int = $num[0];
  24. $fl = isset($num[ 1 ]) ? $num[1] : FALSE;
  25. }
  26. // 길이
  27. $len = strlen($int);
  28. // 중국어
  29. $ 중국어 = array();
  30. // 역수
  31. $str = strrev($int);
  32. for($i = 0; $i<$len; $ i =4 ) {
  33. $s = 배열(0=>$str[$i], 1=>$str[$i 1], 2=>$str[$i 2], 3= >$ str[$i 3]);
  34. $j = '';
  35. // 천 자리
  36. if ($s[3] !== '') {
  37. $s[ 3] = (int) $s[3];
  38. if ($s[3] !== 0) {
  39. $j .= $CNum[0][$s[3]] .$CNum [1][3];
  40. } else {
  41. if ($s[2] != 0 || $s[1] != 0 || $s[0]!=0) {
  42. $j .= $CNum[0][0];
  43. }
  44. }
  45. }
  46. // 백자리
  47. if ($s[2] !== ' ') {
  48. $s[2] = (int) $s[2];
  49. if ($s[2] !== 0) {
  50. $j .= $CNum[0][ $s[ 2]].$CNum[1][2];
  51. } else {
  52. if ($s[3]!=0 && ($s[1] != 0 || $s[ 0]! =0) ) {
  53. $j .= $CNum[0][0];
  54. }
  55. }
  56. }
  57. // 십의 자리
  58. if ($s [1] !== '') {
  59. $s[1] = (int) $s[1];
  60. if ($s[1] !== 0) {
  61. $j . [0][$s[1]].$CNum[1][1];
  62. } else {
  63. if ($s[0]!=0 && $s[2] != 0) {
  64. $j .= $CNum[0][$s[1]];
  65. }
  66. }
  67. }
  68. // 1자리
  69. if ($s[ 0] ! == '') {
  70. $s[0] = (int) $s[0];
  71. if ($s[0] !== 0) {
  72. $j .= $CNum[ 0][$s[0]].$CNum[1][0];
  73. } else {
  74. // $j .= $CNum[0][0];
  75. }
  76. }
  77. $j.=$CNum[2][$i/4];
  78. array_unshift($chinese, $j);
  79. }
  80. $chs = implode('', $chinese);
  81. if ($fl) {
  82. $chs .= 'point';
  83. for($i=0,$ j=strlen ($fl); $i<$j; $i ) {
  84. $t = (int)$fl[$i];
  85. $chs.= $str[0][$t] ;
  86. }
  87. }
  88. return $chs;
  89. }
코드 복사
  1. 함수2중국어($num, $m = 1) {
  2. 스위치($m) {
  3. 사례 0:
  4. $CNum = 배열(
  5. array('제로','1','2','3','4','5','lu','qi','8','jiu'),
  6. array('' ,'shi','hundred','仟'),
  7. array('','million','billion','trillion')
  8. );
  9. break;
  10. 기본값:
  11. $CNum = array(
  12. array('제로','1','2','3','4','5','6','7','8',' 9 '),
  13. array('','ten','hundred','thousand'),
  14. array('','ten 천','billion','trillion')
  15. ) ;
  16. break;
  17. }
  18. // $cNum = array('zero','one','two',' three','four','five','six' , '7','8','9');
  19. if (is_integer($num)) {
  20. $int = (string)$num;
  21. } else if (is_numeric( $ num)) {
  22. $num = 폭발('.', (string)floatval($num));
  23. $int = $num[0];
  24. $fl = isset($num[ 1 ]) ? $num[1] : FALSE;
  25. }
  26. // 길이
  27. $len = strlen($int);
  28. // 중국어
  29. $ 중국어 = array();
  30. // 역수
  31. $str = strrev($int);
  32. for($i = 0; $i<$len; $ i =4 ) {
  33. $s = 배열(0=>$str[$i], 1=>$str[$i 1], 2=>$str[$i 2], 3= >$ str[$i 3]);
  34. $j = '';
  35. // 천 자리
  36. if ($s[3] !== '') {
  37. $s[ 3] = (int) $s[3];
  38. if ($s[3] !== 0) {
  39. $j .= $CNum[0][$s[3]] .$CNum [1][3];
  40. } else {
  41. if ($s[2] != 0 || $s[1] != 0 || $s[0]!=0) {
  42. $j .= $CNum[0][0];
  43. }
  44. }
  45. }
  46. // 백자리
  47. if ($s[2] !== ' ') {
  48. $s[2] = (int) $s[2];
  49. if ($s[2] !== 0) {
  50. $j .= $CNum[0][ $s[ 2]].$CNum[1][2];
  51. } else {
  52. if ($s[3]!=0 && ($s[1] != 0 || $s[ 0]! =0) ) {
  53. $j .= $CNum[0][0];
  54. }
  55. }
  56. }
  57. // 십의 자리
  58. if ($s [1] !== '') {
  59. $s[1] = (int) $s[1];
  60. if ($s[1] !== 0) {
  61. $j . [0][$s[1]].$CNum[1][1];
  62. } else {
  63. if ($s[0]!=0 && $s[2] != 0) {
  64. $j .= $CNum[0][$s[1]];
  65. }
  66. }
  67. }
  68. // 1자리
  69. if ($s[ 0] ! == '') {
  70. $s[0] = (int) $s[0];
  71. if ($s[0] !== 0) {
  72. $j .= $CNum[ 0][$s[0]].$CNum[1][0];
  73. } else {
  74. // $j .= $CNum[0][0];
  75. }
  76. }
  77. $j.=$CNum[2][$i/4];
  78. array_unshift($chinese, $j);
  79. }
  80. $chs = implode('', $chinese);
  81. if ($fl) {
  82. $chs .= 'point';
  83. for($i=0,$ j=strlen ($fl); $i<$j; $i ) {
  84. $t = (int)$fl[$i];
  85. $chs.= $str[0][$t] ;
  86. }
  87. }
  88. return $chs;
  89. }
코드 복사


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.