2013-08-29 52 views
-1

您好我正在使用mt_rand(1, 99999)生成一個隨機整數,如果它不等於5位,它將在整數的前面加0。將「0」加到整數的前面

這是我第一次嘗試:

$random_number = mt_rand(1, 99999); 
$ran_len = strlen($random_number); 

while ($ran_len != 5) { 
$add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT); 
} 

echo $add_ran_num; 
+0

認沽'$ ran_len = ...'在循環或墊由5 –

+1

的差異顯然不能看的問題。 –

+0

這雖然給了無盡的循環地獄,不是嗎? – hakre

回答

4

你不需要爲strlen也不while循環:

$random_number = mt_rand(1, 99999); 
$add_ran_num = str_pad($random_number, 5, "0", STR_PAD_LEFT); 
echo $add_ran_num; 
0

你不更新的$ran_len值:

$random_number = mt_rand(1, 99999); 
$ran_len = strlen($random_number); 

while ($ran_len != 5) {  
    $add_ran_num = str_pad($random_number, 1, "0", STR_PAD_LEFT); 
    $ran_len = strlen($random_number);//<--- 
} 

echo $add_ran_num; 

因此,循環是無限的。

7
printf('%05d', mt_rand(1, 99999)); 
1

這將做你想做的

$random_number = str_pad(mt_rand(1, 99999), 5, "0", STR_PAD_LEFT);