一旦满足条件,如何打破foreach?

时间:2013-08-02 08:34:19

标签: php loops foreach conditional

我遇到的情况是,在处理对象时,我通常会使用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?
      }
}

这样做的优雅方法是什么?如果发现匹配,让它继续循环似乎很浪费。或者还有另一种做法更好吗?可能使用for而不是foreach?

2 个答案:

答案 0 :(得分:32)

来自PHP文档:

break结束当前for,foreach,while,do-while或switch结构的执行。

所以是的,你可以用它来摆脱foreach循环。

答案 1 :(得分:8)

在if条件中使用break语句:

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

break语句将脱离循环。