2013-08-02 7 views
11

私は、一般的に、このようにそれをループするforeachを使用してオブジェクトを扱うような状況があります。しかし条件が満たされたら、foreachから抜け出す方法は?

foreach ($main_object as $key=>$small_object) { 
... 

} 

を、私はこのようにそこに条件を配置する必要があります。

foreach ($main_object as $key=>$small_object) { 
    if ($small_object->NAME == "whatever") { 
     // We found what we need, now see if he right time. 
     if ($small_object->TIME == $sought_time) { 
      // We have what we need, but how can we exit this foreach loop? 
     } 
} 

これを行うためのエレガントな方法は何ですか?それは、それが一致した場合にそれがループを維持しておくことは無駄に思われる。あるいはこれを行う別のアプローチが良いですか?おそらくforeachの代わりにforを使用していますか? PHPのドキュメントから

+2

あなたは 'break;'を意味しますか? http://php.net/manual/en/control-structures.break.php – Resitive

+0

foreachでブレークすることはできますか?私はswitch/caseとwhileでそれを見ますが、foreachで作業を中断しますか?もしそうなら、この方法でブレークを使うのは良いプログラミングスタイルですか? – Edward

答えて

31

breakはため現在、foreachの、一方、行う-ながら、またはスイッチ構造の実行を終了します。

だから、それを使ってforeachループから抜け出すことができます。

+0

うわー、ありがとう!今回はスイッチ/ケースでのみ使用しています。 – Edward

7

があれば条件内breakステートメントを使用します。

if ($small_object->TIME == $sought_time) { 
    break;  
} 

break文は、ループから抜け出すだろう。

関連する問題