문제

임의의 4 자리 숫자가 필요합니다

지금 Im은 항상 4 자리 숫자를 제공하지만 가능한 결과로 0000-0999를 제거합니다.

임의의 숫자를 어떻게 채우나요?

(또한 이것은 결국 문자열에 추가 될 것입니다. int를 문자열로 캐스트해야합니까?)

감사해요

도움이 되었습니까?

해결책

PHP와 같은 스크립팅 언어에서는 99%의 사례를 캐스트 할 필요가 없습니다.

패딩을 사용하여 수행 할 수 있습니다

sprintf("%04u", rand(0, 9999));

설명

첫 번째 논쟁 sprintf 형식을 지정합니다

  • % 두 번째, 셋째, 네 번째 등에 머물러 있습니다. 인수. 첫번째 % 두 번째 인수, 두 번째 인수로 대체됩니다 % 세 번째 등에 의해
  • 0 채우는 행동에 머물러 있습니다 0 왼쪽으로.
  • 4 "최소 4자를 인쇄해야한다"는 상태를 유지합니다.
  • u 서명되지 않은 정수를 유지합니다.

다른 팁

sprintf("%04d", rand(0,9999))

원하는대로해야합니다

빠르고 더러운 ... 어떻게 하는가 :

rand(10000,19999)

마지막 4 자리를 취하십시오.

substr(rand(10000, 19999), 1, 4)
str_pad(mt_rand(0, 9999), 4, '0', STR_PAD_LEFT);

rand () 대신 mt_rand ()를 사용하면 더 좋습니다.

당신이 사용할 수있는 str_pad () 또는 sprintf () 문자열을 포맷하려면 :

$rand = rand(0, 9999);
$str1 = str_pad($rand, 4, '0', STR_PAD_LEFT);
$str2 = sprintf('%04u', $rand);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top