Llevo varios dias peleandome con esta función , que en si hace lo que necesito , pero no entiendo una cosa, espero puedan ayudarme porque me está dando duros dolores de cabeza no entender algo que en sí creo que debe ser muy sencillo.
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');
La salida por pantalla es :
home
usuario1
download
videos
holaholaholausuario2
mp3
holaholausuario3
holaholahola
No entiendo 2 cosas :
Por qué se imprime 'hola' en pantalla, cuando tras el echo, no se vuelve a invocar a la función.
La variable $id toma el valor 6, al imprimir 'videos' , y cuando se imprimen los echo , cambia su valor y no entiendo por qué, puesto que como digo, ni se invoca la función y tampoco le asigno valor nuevo a la variable $id...
Espero puedan ayudarme realmente porque de verdad que en un código tan sencillo a simple vista , no me entra en cabeza esas 2 cosas y logro ver el por qué.
Un saludo y gracias
