숫자를 한글로 num_to_han('123456789') -> 1억2천3백4십5만6천7백8십9

function num_to_han($mny,$st=0,$t=0){
//숫자를 완벽하게 한글로 바꿔준다.
//num_to_han('123456789') -> 1억2천3백4십5만6천7백8십9
//num_to_han('123456789',0,0) -> 1억2천3백4십5만6천7백8십9
//num_to_han('123456789',6,0) -> 1억2천3백만
//num_to_han('123456789',0,1) -> 일억이천삼백사십오만육천칠백팔십구
//num_to_han('123456789',6,1) -> 일억이천삼백만

if($t){
$k = array("", "일","이","삼","사","오","육","칠","팔","구"); // 숫자의 한글발음
}else{
$k = array("", "1","2","3","4","5","6","7","8","9"); // 숫자의 한글발음
}
$j1 = array("","십","백","천"); // 자리수의 한글발음(4자마다 반복)
$j2 = array("","만","억","조","경"); // 단위의 한글발음(4자마다)
 $arr=array();
 $m=strlen($mny);
 for($i=0;$i<$m;$i++){
  $arr[]=$mny{$i};
 }
 $arr = array_reverse($arr);
 $arrj1 = array();
 $arrj2 = array();
 for($i=0,$m=count($arr);$i<$m;$i++){
  $arrj1[] = $j1[$i%4]; 
  $arrj2[] = $j2[floor($i/4)];
 }
 $cu = '';
 $mstr = '';
 for($i=$st,$m=count($arr);$i<$m;$i++){
  if(!empty($arr)) {
   $t = $k[$arr[$i]].$arrj1[$i];
   if($cu != $arrj2[$i]){
    $cu = $arrj2[$i];
    $t.=$cu;
   }
  $mstr = $t.$mstr;
  }
 }
 return($mstr);
}
function num_to_han_s($mny,$st=0){
//숫자를 4단위로 한글 단위를 붙인다.
//num_to_han_s('123456789') -> 1억2345만6789
//num_to_han_s('123456789',4) -> 1억2345만
//num_to_han_s('123456789',6) -> 1억2345만 //무조건 4단위로 끊음
$j2 = array("","만","억","조","경"); // 단위의 한글발음 (조 다음으로 계속 추가 가능)
 $arr=array();
 $m=strlen($mny);
 for($i=0;$i<$m;$i++){
  $arr[]=$mny{$i};
 }
 $arr = array_reverse($arr);
 $arrj1 = array();
 $arrj2 = array();
 for($i=0,$m=count($arr);$i<$m;$i++){
//  $arrj1[] = $j1[$i%4]; 
  $arrj2[] = $j2[floor($i/4)];
 }
 $cu = '';
 $mstr = '';
 $st = floor($st/4)*4;
 for($i=$st,$m=count($arr);$i<$m;$i++){
   $t = $arr[$i];
   if($cu != $arrj2[$i]){
    $cu = $arrj2[$i];
    $t.=$cu;
   }
  $mstr = $t.$mstr;
 }
 return($mstr); 
}

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1