【问题标题】:i need help to generate a sequence numbers in the for loop我需要帮助在 for 循环中生成序列号
【发布时间】:2013-05-07 08:54:27
【问题描述】:

我需要帮助来生成for loop 中的序列号我有代码,但它不能正常工作,因为我想做它正在生成随机数?

如果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>';
}

【问题讨论】:

  • 我想你的意思是range(500, 999)...
  • 如果你想要一个带有前导零的设置显示大小,请使用 str_pad() 或 sprintf() 而不是那一系列复杂的 if 语句
  • 请重新表述您的问题。你在某个时候谈论随机数,但不要告诉我们这些在你所做的事情中应该扮演什么角色。为什么 for 循环在达到 999 时又要从 500 开始?这将使它无限。
  • 当您创建随机数时,您永远不会“达到” 999。使用rand() 并不意味着一个数字只能选择一次。可能会出现连续多次999被摘,有时999很长一段时间都不会被摘的情况。如果你能解释一下你想做什么,也许会更好。
  • 如果你想让range(500,999) 继续超越999,为什么还要使用它?只需将您想要的数字作为最后一个数字。

标签: php for-loop numbers sequence


【解决方案1】:

在您的范围内使用 for 循环。并使用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);
}

编辑: 我不清楚在达到 999 时要如何以及为什么要再次从 500 开始,但您可以将上述内容包含在:

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

警告:以上将创建一个无限循环!

试试这样的:

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

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

【讨论】:

  • 它现在正在工作,但是如果循环到达999,我如何自动从500开始?
  • 我不清楚在达到 999 时您要如何以及为什么要再次从 500 开始,所以我提供了一些基本解决方案,您应该选择最接近您需求的解决方案...跨度>
【解决方案2】:

试试这个:

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

【讨论】:

  • 如果循环到达 999,我如何自动从 500 开始?
【解决方案3】:

我想这就是你要找的东西:

    $seed=rand(500, 999);

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

【讨论】:

    猜你喜欢
    • 2016-01-22
    • 2019-06-07
    • 2016-11-30
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2018-06-06
    相关资源
    最近更新 更多