Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/09/2011, 05:16
shilen79
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 17 años
Puntos: 11
Función recursiva estructura de árbol

Buenas!

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."&nbsp;&nbsp;&nbsp;&nbsp;";
  }
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'); 
Y de resultado me muestra esto :
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.