Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - GeekProgrammer

Páginas: [1]
1
Facil mira hay varios pasos:

1) preparar el arreglo para que los elementos tengan hijos, si lo haces con php primero hay que convertirlo usando json_decode(); nos da algo asi:

Código: [Seleccionar]
Array
(
    [0] => stdClass Object
        (
            [id] => 1384417
            [nombre] => HERRAMIENTAS ELÉCTRICAS
            [padre] => 0
        )

    [1] => stdClass Object
        (
            [id] => 1384418
            [nombre] => Amoladoras
            [padre] => 1384417
        )

    [2] => stdClass Object
        (
            [id] => 1384419
            [nombre] => Aspiradoras/Sopladores de Hojas
            [padre] => 1384417
        )

    [3] => stdClass Object
        (
            [id] => 1384420
            [nombre] => Atornilladores
            [padre] => 1384417
        )

    [4] => stdClass Object
        (
            [id] => 1384423
            [nombre] => Cepillos
            [padre] => 1384417
        )

    [5] => stdClass Object
        (
            [id] => 1384424
            [nombre] => Cortacercos
            [padre] => 1384417
        )

    [6] => stdClass Object
        (
            [id] => 1384425
            [nombre] => Electrosierras
            [padre] => 1384417
        )

    [7] => stdClass Object
        (
            [id] => 1384444
            [nombre] => Estación de Inflado
            [padre] => 1384417
        )

    [8] => stdClass Object
        (
            [id] => 1384445
            [nombre] => Herramientas Estacionarias
            [padre] => 1384417
        )

    [9] => stdClass Object
        (
            [id] => 1384446
            [nombre] => Taladros de Banco
            [padre] => 1384445
        )

    [10] => stdClass Object
        (
            [id] => 1384447
            [nombre] => Sierras Ingleteadoras
            [padre] => 1384445
        )

    [11] => stdClass Object
        (
            [id] => 1384448
            [nombre] => Sierras de Banco
            [padre] => 1384445
        )

    [12] => stdClass Object
        (
            [id] => 1384449
            [nombre] => Lijadoras
            [padre] => 1384417
        )

    [13] => stdClass Object
        (
            [id] => 1384450
            [nombre] => De Banda
            [padre] => 1384449
        )

    [14] => stdClass Object
        (
            [id] => 1384451
            [nombre] => Orbitales
            [padre] => 1384449
        )

    [15] => stdClass Object
        (
            [id] => 1384452
            [nombre] => Llaves de Impacto
            [padre] => 1384417
        )

    [16] => stdClass Object
        (
            [id] => 1384453
            [nombre] => Martillos
            [padre] => 1384417
        )

    [17] => stdClass Object
        (
            [id] => 1384454
            [nombre] => Con Rotación
            [padre] => 1384453
        )

    [18] => stdClass Object
        (
            [id] => 1384455
            [nombre] => Sin Rotación
            [padre] => 1384453
        )

    [19] => stdClass Object
        (
            [id] => 1384456
            [nombre] => Pistolas de Calor
            [padre] => 1384417
        )

    [20] => stdClass Object
        (
            [id] => 1384457
            [nombre] => Pulidoras
            [padre] => 1384417
        )

    [21] => stdClass Object
        (
            [id] => 1384458
            [nombre] => Routers
            [padre] => 1384417
        )

    [22] => stdClass Object
        (
            [id] => 1384459
            [nombre] => Sierras
            [padre] => 1384417
        )

    [23] => stdClass Object
        (
            [id] => 1384460
            [nombre] => Taladros
            [padre] => 1384417
        )

    [24] => stdClass Object
        (
            [id] => 1384461
            [nombre] => Con Percusión
            [padre] => 1384460
        )

    [25] => stdClass Object
        (
            [id] => 1384462
            [nombre] => Sin percusión
            [padre] => 1384460
        )

    [26] => stdClass Object
        (
            [id] => 1384464
            [nombre] => Tornos Manuales
            [padre] => 1384417
        )

    [27] => stdClass Object
        (
            [id] => 1508300
            [nombre] => HERRAMIENTAS A BATERÍA
            [padre] => 0
        )

    [28] => stdClass Object
        (
            [id] => 1508315
            [nombre] => Atornilladores
            [padre] => 1508300
        )

    [29] => stdClass Object
        (
            [id] => 1384463
            [nombre] => Taladros
            [padre] => 1508300
        )

    [30] => stdClass Object
        (
            [id] => 1384426
            [nombre] => HERRAMIENTAS A EXPLOSIÓN
            [padre] => 0
        )

    [31] => stdClass Object
        (
            [id] => 1384465
            [nombre] => Desmalezadoras
            [padre] => 1384426
        )

    [32] => stdClass Object
        (
            [id] => 1384466
            [nombre] => Grupos Electrógenos
            [padre] => 1384426
        )

    [33] => stdClass Object
        (
            [id] => 1384467
            [nombre] => Motosierras
            [padre] => 1384426
        )

    [34] => stdClass Object
        (
            [id] => 1384427
            [nombre] => HIDROLAVADORAS ELÉCTRICAS
            [padre] => 0
        )

    [35] => stdClass Object
        (
            [id] => 1384471
            [nombre] => NIVELES LÁSER
            [padre] => 0
        )

    [36] => stdClass Object
        (
            [id] => 1384472
            [nombre] => LINTERNAS RECARGABLES
            [padre] => 0
        )

    [37] => stdClass Object
        (
            [id] => 1384428
            [nombre] => ACCESORIOS Y ELECTRÓNICOS
            [padre] => 0
        )

    [38] => stdClass Object
        (
            [id] => 1384468
            [nombre] => Baterías
            [padre] => 1384428
        )

    [39] => stdClass Object
        (
            [id] => 1384469
            [nombre] => Cargadores de Batería
            [padre] => 1384428
        )

    [40] => stdClass Object
        (
            [id] => 1384470
            [nombre] => Conservadoras
            [padre] => 1384428
        )

    [41] => stdClass Object
        (
            [id] => 1384473
            [nombre] => Para Compresores
            [padre] => 1384428
        )

)

Luego hay que preparar los elementos agregándoles un "hijo" que es un array.

Código: [Seleccionar]
$tmp = json_decode($a);
foreach($tmp as $b) {
$b->hijos = array();
}

Luego recorres otravez todo el array de herramientas, si padre es 0 continuamos, si padre no es 0, buscamos su padre lo metemos en hijos y lo borramos del arreglo original

Mas o menos asi:

Código: [Seleccionar]
$tmp = json_decode($a);


foreach($tmp as $c) {
$retval = insertarEnPadre($tmp, $c->padre, $c);
if($retval == 0) {
unset($c);
}
}


function insertarEnPadre($herramientas, $id, $hijo){
foreach($herramientas as $herramienta) {
if($herramienta->padre == 0) {
continue;
} else {
if($id == $herramienta->padre) {
if(!isset($herramienta->hijos)) {
$herramienta->hijos = array();
}
array_push($herramienta->hijos, $hijo);
return 0;
}
}
}
return 1;
}

print_r($tmp);

Talvez no funcione... necesito cafe xD

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".