Skip to content
On this page

원 화폐 단위를 한글로 표시

php
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 (ereg("[^0-9]",$mny)) return false;
    $mny=(string)$mny;
 
    $sepss=Array("","","","");
    $sepsl=Array("","","","","","","","","","","","","");
    $nums=Array("","","","","","","","","","");
    
    $return_txt = array(); // 반환되는 값
 
    $arr = array_reverse(str_split($mny));
    if ($st==0) $idx=0;
    else $idx=$st;
    
    $zero_cnt=0;
    for($i=$idx; $i<count($arr); $i++) {
        if ($i%4==0) {
            if ($zero_cnt==4) array_pop($return_txt);
            $zero_cnt=0;
            $return_txt[] = $sepsl[(int)($i/4)] ;
        }
        
        if ($arr[$i] != "0") {
            if ($t==0) $return_txt[] = $arr[$i] . $sepss[($i%4)];
            else if ($t==1) $return_txt[] = $nums[(int)$arr[$i]] . $sepss[($i%4)];
            else return false;
        }
        else $zero_cnt++;
    }
    if ($idx!=0) array_unshift($return_txt, $sepsl[(int)($idx/4)]) ;
    
    $return_txt=array_reverse($return_txt);
 
    $r_txt="";
    for($i=0;$i<count($return_txt);$i++)
        if ($return_txt[$i] != "") $r_txt .= $return_txt[$i];
 
    return $r_txt;
}

결과 값은 1억2천3백 이런식으로 숫자, 한글 단위로 표시 된다.