Estoy 'intentando' montar una estructura de árbol , y estoy peleandome con las funciones recursivas jeje.
Tengo esto :
Código PHP:
function espace($rango) {
$ch="";
for ($x=0;$x<$rango;$x++) {
$ch=$ch." ";
}
return $ch;
}
function recur($dir,$id,$rango) {
for ($x=0;$x<count($dir);$x++) {
echo $dir[$x][0];
if ($dir[$x][1]==$id) {
echo espace($rango).$dir[$x][2]."<BR>";
recur($dir,$dir[$x][0],$rango+1);
}
}
}
$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');
1home
12 usuario1
12345 download
123456 videos
12345677673 usuario2
1234567 mp3
12345674 usuario3
1234567567234567
Hace lo que quiero, pero no entiendo bien el porqué, me explico:
Entiendo como llega hasta 'videos' , pero luego en usuario 2, no entiendo
el paso de la variable $id que hace 7, 7 ,6,7 y llega al 3.
Lo he estado mirando paso a paso , pero es que cuando tengo como id = 6, lo que veo es que pararía (y solo me sacaría usuario1/download/videos) , no entiendo como hace para seguir, porque si no encuentra una coincidencia, para, y no tengo ningun valor en el array que tenga (x,6,'nombre')
Espero se me haya entendido y me puedan ayudar, llevo toda la mañana dandole vueltas y no se que se me escapa en serio :(.
Un saludo.