2013-05-07 66 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); 
    }