while jump end php loops foreach conditional

end - jump foreach php



¿Cómo salir de un foreach una vez que se cumple una condición? (2)

De la documentación de PHP:

break termina la ejecución de la corriente para, foreach, while, do-while o switch structure.

Entonces sí, puedes usarlo para salir del ciclo foreach.

Tengo una situación en la que cuando trato con un objeto generalmente utilizo un foreach para recorrerlo de esta manera:

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

Sin embargo, necesito poner un condicional ahí como este:

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? } }

¿Cuál es la manera elegante de hacer esto? Parece un desperdicio hacer que siga pasando si se encuentra una coincidencia. ¿O hay otro enfoque para hacer esto que sea mejor? Posiblemente usando para en lugar de foreach?


Use la declaración de break dentro de la condición if:

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

declaración de ruptura saldrá del ciclo.