2011-05-05 5 views
3

0099에서 99999까지 임의의 숫자를 생성해야하는 프로젝트가 있습니다. 랜덤 화는 내가 멈추지는 않지만 실제로는 5 문자가 필요하다는 사실입니다. 그래서 번호 14를 생성 할 때 00014로 원합니다.선도 0으로 정수 생성

이것을 수행하는 가장 좋은 방법은 무엇입니까?

답변

11

sprintf()는 작업을 수행 할 수 있습니다

echo sprintf('%05d', 0); 

또는 str_pad()을 사용 -하지만 조금 더 코드입니다 :

echo str_pad(0, 5, 0, STR_PAD_LEFT); 
6

str_pad() 당신이 할 수있는 코드가 무엇을해야 할 수 있습니다.

간단히 :

$s = str_pad('14', 5, '0', STR_PAD_LEFT); 
+0

고마워요,하지만 저는 스테판의 대답과 함께 갈 것입니다. – priktop

0

심지어 substr() 그것을 할 수 있습니다

print substr('0000' . $myRandomNumber, -5); 

(. 아니 내가이 권장 것이라고 그냥 기여하고 싶었 :))

3

이와 정수를 생성 0을 앞세워

정수에는 0이 나오지 않습니다.

0이 필요한 경우 정수를 문자열로 변환하려고합니다. -> thephpdeveloper의 대답을 확인하십시오. 이것은 0으로 시작하는 숫자를 데이터베이스에 쓰는 올바른 방법입니다.

정수와 같이 작업하려는 경우 (예 : 계산) 정수를 정수로두고 (문자열로 변경하지 말고) 해당 숫자를 출력해야 할 때마다 -> 솔루션을 가져옵니다. "Stefan Gehrig"

+0

좋은 지적. [octals/hexadecimals] (http://php.net/manual/en/language.types.integer.php)는 (1) '0'을 선두로하는 리터럴 정수입니다. – jensgram

+0

바이너리는 앞에 0을 붙일 수도 있습니다 : 0001은 0000001 ;-)과 같습니다. –

+0

이것은 십진수 0001과 같은 것이고 십진수 0000001과 같습니다. 맨 앞의 0은 중요하지 않습니다. – BoltClock