0

如何在 foreach 循环中后退一步?说我有这样的事情:

为第一次运行做点什么。如果 b == 1,再做一次。请参阅下面的代码。

$i = 0;
foreach ($a as $b) {
  如果 ($i == 0) {
     //某物
  }
  如果 ($b == '1') {
    $i = 0;
  }
  $i++;
}

问题是,当 $b == 1 时,它设置 $i = 0 但不运行里面的指令。如果不可能后退,有没有更好的方法来克服这个问题?

更新:谢谢大家的回复。抱歉,我输入此内容时不清楚。

但是我设法通过将循环放在一个函数中并在调用它之前进行一些条件检查并传递参数来实现我想要的。

4

2 回答 2

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;
    }
}
于 2011-04-26T08:35:42.630 回答
0

你确定 $i 在循环中被设置为 0,它很可能总是 0(因为这是在循环之前设置的)

于 2011-04-26T08:48:42.347 回答