2014. 1. 16. 19:04

숫자를 한글원단위로 바꾸는 함수


/**
 * 숫자를 원단위로 변환
 * @param string $num
 * @param int $cut_block
 * @return string
 */
function number2won($num, $cut_block = 0) {
    if(!$num)
        return '0';
    if($num < 0) {
        $sign = '-';
        $num = $num * -1;
    }
    else {
        $sign = '';
    }
    if(!ctype_digit($num))
        $num = (string)$num;
        
    $won = array('', '만', '억', '조', '경', '해');
    $rtn = '';
    $len = strlen($num);
    $mod = $len % 4;
    if($mod) {
        $mod = 4 - $mod;
        $num = str_pad($num, $len + $mod, '0', STR_PAD_LEFT);
    }
    
    $arr = str_split($num, 4);
    $cnt=$cnt2=count($arr);
    if($cut_block) {
        if($cnt > $cut_block)
            $cnt = $cut_block;
    }        
    for($i=0;$i<$cnt;$i++) {
        if($tmp = (int)$arr[$i]) {
            if($i)
                $rtn .= ' '.$tmp.$won[$cnt2 - $i - 1];
            else
                $rtn .= $tmp.$won[$cnt2 - $i - 1];
        }
    }
    return $sign.$rtn;
}