我想要的是从1
到4
的第一个循环以及从5
到6
的第二个循环。
这是我的代码:
<?php
for ($i = 1 ; $i <= 4 ; $i++)
{
echo $i . "<br>";
}
?>
<hr>
<?php
for ($i = 1 ; $i <= 2 ; $i++)
{
echo $i . "<br>";
}
?>
答案 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>";
}
}