如何在foreach循环中向后移动一步? 说我有这样的事情:
为第一次运行做点什么。如果b == 1,再做一次。请参阅下面的代码。
$i = 0; foreach ($a as $b) { if ($i == 0) { //something } if ($b == '1') { $i = 0; } $i++; }
问题是,当$ b == 1时,它设置$ i = 0但不运行里面的指令。 如果不能退一步,有什么更好的方法可以克服这个问题吗?
更新: 谢谢大家的回应。对不起,当我打字时我不清楚。
但是我设法通过将循环放在一个函数中并在调用它之前进行一些条件检查并传递参数来实现我想要的。
答案 0 :(得分:2)
不确定这是否是拼写错误,但你有if($ i = 0)而不是if($ i == 0)。可能你的问题在那里?
也许另一种选择就是:
if ($b == '1') {
// do something?
}
最终选项是执行常规for循环并在条件存在时递减计数器:
for ($x = 0; $x < count($thing); $x++) {
if($thing[$x] == '1') {
$x -= 1;
}
}
答案 1 :(得分:0)
你确定$ i在循环中被设置为0,它很可能总是为0(因为它是在循环之前设置的)