Foros del Web » Programando para Internet » PHP »

menu con array recursivo

Estas en el tema de menu con array recursivo en el foro de PHP en Foros del Web. Hola tengo el siguiente arreglo: Código PHP: Array (     [ name ] =>  animales      [ sub ] => Array         (             [ 0 ] => Array                 (                     [ name ] =>  ...
  #1 (permalink)  
Antiguo 07/05/2015, 16:20
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 15 años
Puntos: 1
menu con array recursivo

Hola tengo el siguiente arreglo:

Código PHP:
Array
(
    [
name] => animales
    
[sub] => Array
        (
            [
0] => Array
                (
                    [
name] => invertebrados
                    
[sub] => Array
                        (
                            [
0] => Array
                                (
                                    [
name] => moluscos
                                    
[leaf] => 1
                                
)

                            [
1] => Array
                                (
                                    [
name] => insectos
                                    
[sub] => Array
                                        (
                                            [
0] => Array
                                                (
                                                    [
name] => mantis
                                                    
[leaf] => 1
                                                
)

                                        )

                                )

                        )

                )

            [
1] => Array
                (
                    [
name] => vertebrados
                    
[sub] => Array
                        (
                            [
0] => Array
                                (
                                    [
name] => mamiferos
                                    
[sub] => Array
                                        (
                                            [
0] => Array
                                                (
                                                    [
name] => tigre
                                                    
[leaf] => 1
                                                
)

                                            [
1] => Array
                                                (
                                                    [
name] => caballo
                                                    
[leaf] => 1
                                                
)

                                        )

                                )

                        )

                )

        )


pero quiero recorrer para formar un menú con html.
Ya lo pude recorrer con una función recursiva, el problema es a la hora de formar el html. Alguien me podría ayudar a formar el html (Listas)
  #2 (permalink)  
Antiguo 07/05/2015, 16:25
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 15 años
Puntos: 1
Respuesta: menu con array recursivo

esta es la funcion que uso para recorrerlo:

Código PHP:
Ver original
  1. public function formaMenu($arrelo)
  2.     {
  3.        //echo"<pre>"; print_r($arrelo); echo"</pre><br><br>";
  4.        
  5.        foreach($arrelo as $key=>$value){
  6.            if (is_array($value)){              
  7.                $this->formaMenu($value);
  8.             }else{
  9.                 $this->html .= "<div>{$value}</div>";                  
  10.                 //$this->html .= $key.': '.$value.'<br>';                  
  11.             }              
  12.        }
  13.        return $this->html;
  14.     }
  #3 (permalink)  
Antiguo 07/05/2015, 18:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: menu con array recursivo

Imagina que quieres armar un árbol basado en listas únicamente:
Código PHP:
Ver original
  1. function re($data) {
  2.   $items = [];
  3.  
  4.   foreach ($data as $node) {
  5.     if (is_array($node)) {
  6.       $items []= '<li>' . re($node) . '</li>';
  7.     } else {
  8.       $items []= '<li>' . $node . '</li>';
  9.     }
  10.   }
  11.  
  12.   return '<ul>' . join('', $items) . '</ul>';
  13. }

La idea es simple, lo demás ya te toca a ti.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, recursivo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:33.