我的第二个for循环能够使用第一个循环的增量进行迭代吗?

时间:2018-03-21 17:51:03

标签: php for-loop

我想要的是从14的第一个循环以及从56的第二个循环。

这是我的代码:

<?php
for ($i = 1 ; $i <= 4 ; $i++)
{
    echo $i . "<br>";
}
?>
<hr>
<?php  
for ($i = 1 ; $i <= 2 ; $i++)
{
    echo $i . "<br>";
}
?>

3 个答案:

答案 0 :(得分:2)

你给出的循环是:
第一循环:从1到4
第二个循环:从1到2

第一个循环没问题,但需要修改秒数。使用$i<=6并且不要初始化$i变量 这会给你:

第1次循环:从1到4
第二个循环:从(第一个循环结束的值)+1到6,所以(4 + 1)到6,5到6

<?php
$i = 0; // be sure 'i' is visible in both loops
for ($i=1; $i<=4; $i++) // form 1 to 4
{
    echo $i . "<br>";
}
?>
<hr>
<?php  
$i++; // start from 5, not 4
for (; $i<=6; $i++) // from the previous value to 6
{
    echo $i . "<br>";
}
?>

答案 1 :(得分:1)

您的问题

第二个for循环会将您的$i变量重置为1

for ($i = 1 ; $i <= 2 ; $i++)

解决方案

您可以使用while loop代替第二个for循环:

<?php
for ($i = 1; $i <= 4; $i++)
{
  echo $i . "<br>";
}
?>

<hr>

<?php
while ($i <= 6) // `<= 6` instead of `<= 2`, since we keep $1's value
{
  echo $i . "<br>";
  $i++;
}
?>

答案 2 :(得分:-1)

为什么不在同一个点的适当位置输出<hr>标签,而不是为此使用两个循环?如果你继续添加额外的循环,首先你会遇到这样的关于(重新)初始化变量的混乱问题,而且你也很快会得到很多不必要的重复代码。< / p>

您可以使用PHP modulo operator (%)在每第四个元素后输出<hr>标记,这样既可以降低复杂性,又可以在以后添加更多元素时进行更多扩展:

for ($i=1; $i<=6; $i++) {
    echo $i . "<br>";

    if ($i % 4 === 0) {
        echo "<hr>";
    }
}

请参阅https://eval.in/976102