2013-05-07 48 views
0

我需要幫助來生成for loop中的序列號我有代碼但它不能正常工作,因爲我想要做的是生成隨機數?我需要幫助生成for循環中的序列號

如果for loop達到999然後自動如何添加後for循環達到999 for循環應該像這樣加入999+1=1000+1=10001

我想腳本生成數這樣

500,501,502,503,....so on till 999 

這裏我的代碼

$numbers = range(500, 999); 
foreach ($numbers as $i) { 
echo $say = str_pad($i, 5, "0", STR_PAD_LEFT).'<br>'; 
} 
+2

我認爲你的意思是'範圍(500,999)'...... – elclanrs 2013-05-07 08:56:07

+1

如果你想要一個具有前導零的設置顯示大小,請使用str_pad()或sprintf()而不是那些複雜的'if'語句系列 – 2013-05-07 08:57:55

+1

Please rephrase你的問題。你在某個時候正在談論隨機數字,但不要告訴我們這些人應該在你所做的事情中扮演什麼角色。爲什麼for循環在達到999時再次以500開始?這將使它無限。 – 2013-05-07 09:00:17

回答

3

與你的範圍內循環使用。並使用str_pad()

for ($i = 500; $i < 1000; $i++) { 
    $say = str_pad($i, 5, "0", STR_PAD_LEFT); 
} 

而且隨着range()

$numbers = range(500, 999); 
foreach ($numbers as $i) { 
    $say = str_pad($i, 5, "0", STR_PAD_LEFT); 
} 

編輯: 你爲什麼要在500重新開始達到999的時候,但你可以換上面這不是很清楚,我怎麼和在:

while (true) { 
    // One of the above solutions 
} 

警告:上述將創建一個infinit循環!

嘗試這樣:

$h = 0; 
while ($h < 10) { 
    // One of the above solutions 
    $h++ 
} 

for ($h = 0; $h < 10; $h++) { 
    // One of the above solutions 
} 
+0

它現在正在工作,但如何循環達到'999',如何自動啓動'500'? – 2013-05-07 09:01:43

+0

我不清楚如何以及爲什麼要在達到999時再次從500開始,所以我提供了一些基本解決方案,您應該選擇最接近您需要的解決方案... – 7ochem 2013-05-07 12:18:31

0

試試這個:

$num=rand(500, 999); 
for ($i = 500; $i <=$num ; $i++) { 
    echo str_pad($i,5,'0', STR_PAD_LEFT); 
} 
+0

如何自動從500開始如果循環達到999? – 2013-05-07 09:04:44

0

我認爲這是你在找什麼:

$seed=rand(500, 999); 

    for ($i = 0; $i <500 ; $i++) 
    {   
     $num=500+($seed+$i)%500; 
     $say = str_pad($num,5,'0', STR_PAD_LEFT); 
    }