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 に答える