PHP

PHP 숫자에 콤마(,) 찍기

bang2001 2013. 10. 16. 14:19

숫자를 다루다보면 숫자 3자리마다 콤마(,)를 찍어야 할 경우가 있습니다. 주로 화폐(ex \2,000 $3,000) 같은 경우가 그 예라고 할 수 있습니다. 이 때 숫자를 문자열로 변환 후 뒤에서 부터 3자리씩 문자열을 잘라서 그 사이에 콤마(,)를 삽입하는 방법이 있겠습니다.


//숫자 3자리마다 콤마(,) 삽입

function numberFormat($number)

{

//변수선언

$result = "";

$strLength = 0;

$comma_pos = 0;


if(!$number || $number == "" || $number == 0)

return;

$strLength = strlen($number);

$comma_pos $strLength % 3;


for($i=0 ; $i<$strLength $i++)

{

if($i!=0 && $i%3 == $comma_pos$result .= ",";

$result .= substr($number$i, 1);

}


return $result;

}//numberFormat()-----------------


위의 함수가 바로 그 예입니다. 위 함수는 실제로 앞에서부터 콤마(,)를 찍어냅니다. 또한 시간복잡도에 의해 위 알고리즘은 O(n)을 가집니다. (참고하세요~ ^^) 하지만 PHP에서는 이러한 함수를 아래와 같이 제공합니다.


함수명 : number_format()

파라미터 : 정수데이터

결과값 : 콤마(,) 찍힌 문자열


예제)

$total_count = "1200";

echo number_format((int)$total_count);


출력결과 : 1,200


이 함수가 PHP 버전 몇 부터 지원되는지는 모르겠습니다. number_format() 함수를 사용해보시고 없으면 상단에 임의로 구현한 함수를 사용해보시기 바랍니다.