Lo subo al menos una vez para ver si puede alguien echarme una mano :(.
He simplificado un poco la función, quitando la función que hace los espacios.
Para ver si no me he explicado bien en la duda y por ello no me la podeis resolver:
Código PHP:
function recur($dir,$id) {
for ($x=0;$x<count($dir);$x++) {
if ($dir[$x][1] == $id) {
echo $dir[$x][2]."<BR>";
recur($dir,$dir[$x][0]);
}
}
echo 'hola';
}
$data[] = array(1,0, 'home');
$data[] = array(2,1, 'usuario1');
$data[] = array(3,1, 'usuario2');
$data[] = array(4,1, 'usuario3');
$data[] = array(5,2, 'download');
$data[] = array(6,5, 'videos');
$data[] = array(7,3, 'mp3');
recur($data,0);
La salida es :
home
usuario1
download
videos
holaholaholausuario2
mp3
holaholausuario3
holaholahola
Lo que no entiendo es porque se imprimen los 'hola' , si despues del echo no hay nada, y no se vuelve a llamar a la función.
Porque segun esto si la llama y me modifica la variable $id que muy bien porque hace lo que quiero, pero no lo entiendo :(