문제
임의의 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);
제휴하지 않습니다 StackOverflow