如何在满足条件后跳出 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?
      }
}

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

原文由 Edward 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 377
2 个回答

来自 PHP 文档:

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

所以是的,您可以使用它来退出 foreach 循环。

原文由 ciruvan 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 if 条件中使用 break 语句:

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

break 语句将跳出循环。

原文由 Code Lღver 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏