Código:
foreach($elementsData as $k=>$v){ // nivel 1 echo '<li id="'.$v['Category']['id'].'"> '.$v['Category']['name']; if($v['children']){ // nivel 2 echo '<ul>'; foreach($v['children'] as $k2 => $v2){ //echo '<li id="'.$v2['Category']['id'].'"> '.$v2['Category']['name']; //if($v2['children']){ ... } } echo '</ul>'; echo '</li>'; }else{ echo '</li>'; } }
Quiero mostrar un árbol anidado.
PD: se trabajar con funciones, cakephp, prototype, pero esta función recursiva no la veo.
Aquí tengo el codigo para recorre un árbol de 5 niveles
Código:
// solo del 1 al 5 nivel del arbol. if($elementsData){ echo '<ul id="mytree-standard">'; foreach($elementsData as $k=>$v){ // nivel 1 echo '<li id="'.$v['Category']['id'].'"> '.$v['Category']['name']; if($v['children']){ // nivel 2 echo '<ul>'; foreach($v['children'] as $k2 => $v2){ echo '<li id="'.$v2['Category']['id'].'"> '.$v2['Category']['name']; // nivel 3 if($v2['children']){ echo '<ul>'; foreach($v2['children'] as $k3 => $v3){ echo '<li id="'.$v3['Category']['id'].'"> '.$v3['Category']['name']; // nivel 4 if($v3['children']){ echo '<ul>'; foreach($v3['children'] as $k4 => $v4){ echo '<li id="'.$v4['Category']['id'].'"> '.$v4['Category']['name']; // nivel 5 if($v4['children']){ echo '<ul>'; foreach($v4['children'] as $k5 => $v5){ echo '<li id="'.$v5['Category']['id'].'"> '.$v5['Category']['name'].'</li>'; } echo '</ul>'; echo '</li>'; }else{ echo '</li>'; } } echo '</ul>'; echo '</li>'; }else{ echo '</li>'; } } echo '</ul>'; echo '</li>'; }else{ echo '</li>'; } } echo '</ul>'; echo '</li>'; }else{ echo '</li>'; } } echo '</ul>'; } ?>
saludos.