Observa el siguiente algoritmo:
Código PHP:
Ver originalfunction find($list, $key) {
$found = null;
foreach ($list as $k => $v) {
$found = $v;
break;
} else {
$re = find($v, $key);
if ($re !== null) {
$found = $re;
break;
}
}
}
return $found;
}
La clave está en cómo determinar si se ha hallado un valor, y al ser recursivo debes tener un control del mismo sobre el loop, y no devolver el valor inmediatamente, etc.