Estimados todos, tengo la siguiente función recursiva:
function recorro($matriz, $directorioPadre)
{
foreach ($matriz as $key => $value) {
if (is_object($value)) {
$nombre = $value->getNombre();
if ($nombre == $directorioPadre) {
$encontro = TRUE;
$a['encontro'] = $encontro;
$a['tipoElemento'] = $value->getTipoElemento();
$a['key'] = $key;
$a['arreglo'] = $value;
$continuar = FALSE;
return $a; //retorna el objeto
} else {
$tipoObjeto = get_class($value);
if ($tipoObjeto == 'Directorio') {
//tiene subdirectorios
$listaElementos = $value->getListaElementos();
$numElementos = count($listaElementos);
if ($numElementos > 0) {
//si tiene elementos lo debe recorrer
$this->recorro($listaElementos, $directorioPadre);
}
}
}
} elseif (is_array($value)) {
//si es un array sigo recorriendo
recorro($value);
} else {
//si es un elemento lo muestro
$a = 'key:' . $value;
echo $a;
echo '<br>';
}
}
}
la idea de esta funcion es que recorra un array compuesto de objetos y me retorne el que coincida con cierto nombre, pero el problema es que llega a un nivel en que encuentra el nombre pero por la recursividad se sigue ejecutando, no se como resolverlo. Es decir deseo que una vez que haga el "return $a" se salga y no ejecute más.