Foros del Web » Programando para Internet » PHP »

Como puedo printar categorias recursivamente padres/hijos

Estas en el tema de Como puedo printar categorias recursivamente padres/hijos en el foro de PHP en Foros del Web. Código PHP: foreach( $categories  as  $category ){ echo  $category [ "name" ]. "<br>" ; $children  =  $category [ "children" ];     if( $children )     {         foreach( ...
  #1 (permalink)  
Antiguo 24/06/2012, 05:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 16 años, 2 meses
Puntos: 2
Como puedo printar categorias recursivamente padres/hijos

Código PHP:
foreach($categories as $category){

echo 
$category["name"]."<br>";
$children $category["children"];
    if(
$children)
    {
        foreach(
$children as $child
        {
            echo 
"-".$child["name"]."<br>";
            
$ch $child["children"];
            if(
$ch)
            {
                foreach(
$ch as $c
                {
                    echo 
"--".$c["name"]."<br>";
                }

            }
        }

    }


Quiero hacer esto mismo pero de forma recursiva, alguien podria indicarme porfavor? Muchas gracias
  #2 (permalink)  
Antiguo 24/06/2012, 09:36
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Como puedo printar categorias recursivamente padres/hijos

Con una función recursiva, es la única forma, que se llame a sí misma, puedes conseguir muchos ejemplos como la función recursiva de recoger árboles o la del factorial
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/06/2012, 09:55
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años, 7 meses
Puntos: 34
Respuesta: Como puedo printar categorias recursivamente padres/hijos

Para empezar el arreglo no debe ser asociativo y tiene que estar ordenado sin saltear numeros ni nada raro. (o sea los indices. 0 1 2 3 4 5 y asi)
de lo contrario podes usar array_values() antes y te extrae los valores.

Código PHP:
Ver original
  1. public mostrarCategoria($arreglo, $i = 0){
  2.  
  3.   if(isset $arreglo[$i]){
  4.     echo $arreglo[$i]['name'];
  5.     mostrarCategoria($arreglo['children'], 0);
  6.     mostrarCategoria($arreglo, [$i + 1]);
  7.   }
  8. }

no lo probé pero algo como eso creo que debería funcionar

Etiquetas: categorias
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 14:41.