Как вырваться из 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?

Ответ 1

Из документации PHP:

break завершает выполнение текущего, foreach, while, do-while или структуры коммутатора.

Итак, да, вы можете использовать его, чтобы выйти из цикла foreach.

Ответ 2

Используйте оператор break в условии if:

if ($small_object->TIME == $sought_time) {
   break;       
}
Оператор

break выйдет из цикла.