elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  imprimir arreglos multidimencionales...!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: imprimir arreglos multidimencionales...!!  (Leído 2,096 veces)
01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
imprimir arreglos multidimencionales...!!
« en: 29 Abril 2012, 06:07 am »

saludos!. les comento:

tengo este arreglo formado a pie:

Código
  1. $array = array(
  2.   1 => array(
  3.               "id1" => "01",
  4.               "nombre" => "Alberto",
  5.   "Hijos" => array(
  6.   1 => array(
  7.   "id" => "04",
  8.   "nombre" => "jeferson",
  9.   ),
  10. 2 => array(
  11.   "id" => "05",
  12.   "nombre" => "Zaida",
  13.   ),  
  14.   ),
  15.      ),
  16.   2 => array(
  17.    "id" => "02",
  18.  "nombre" => "Gerson",
  19.              ),
  20.   3 => array(
  21.    "id" => "03",
  22.  "nombre" => "Zaida",
  23.              )    
  24.  );
  25.  

y lo mando a mostrar coni:

Código
  1.  
  2. echo "<pre>";
  3. print_r($array);
  4. echo "</pre>";
  5.  

y imprime:

Código
  1. (
  2.    [1] => Array
  3.        (
  4.            [id1] => 01
  5.            [nombre] => Alberto
  6.            [Hijos] => Array
  7.                (
  8.                    [1] => Array
  9.                        (
  10.                            [id] => 04
  11.                            [nombre] => jeferson
  12.                        )
  13.  
  14.                    [2] => Array
  15.                        (
  16.                            [id] => 05
  17.                            [nombre] => Zaida
  18.                        )
  19.  
  20.                )
  21.  
  22.        )
  23.  
  24.    [2] => Array
  25.        (
  26.            [id] => 02
  27.            [nombre] => Gerson
  28.        )
  29.  
  30.    [3] => Array
  31.        (
  32.            [id] => 03
  33.            [nombre] => Zaida
  34.        )
  35.  
  36. )
  37.  

pero ahora quisiera imprimirlo de manera normal, como lo hacia?

hice esto:

Código
  1. foreach($array as $arreglo)
  2. {
  3. echo '' .$arreglo['id']. '&nbsp;&nbsp;' .$arreglo['nombre']. '&nbsp;&nbsp;' .$arreglo['Hijos']['id']. '<br>';
  4. }
  5.  

pero no imprime bien, hace esto:

Código
  1.  Alberto  
  2. 02  Gerson  
  3. 03  Zaida  
  4.  

y pues mi idea seria  algo haci

Código
  1. 01
  2.   01 alberto
  3.                04 jeferson
  4.                05  zaida
  5.   02 Gerson
  6.   03 zaida
  7.  
esto lo hice a pie...
si notan es como armar un arbol, donde cada persona tiene un hijo...

mi pregunta como podria hacer para que me imprima haci, o que estoy haciendo mal??


En línea

_teiki

Desconectado Desconectado

Mensajes: 93



Ver Perfil WWW
Re: imprimir arreglos multidimencionales...!!
« Respuesta #1 en: 30 Abril 2012, 19:10 pm »

Código
  1. $array = array(
  2.                   1 => array(
  3.                        "id1" => "01",
  4.                                "nombre" => "Alberto",
  5.  

 En primer lugar tienes id1 por eso no te imprime la id.

Para imprimirlos como tu quieres deberías de utilizar 2 foreach de la siguiente forma:

Código
  1. foreach($array as $arreglo)
  2. {
  3. echo '' .$arreglo['id']. '&nbsp;&nbsp;' .$arreglo['nombre']. '<br>';
  4.  
  5. if( isset( $arreglo['Hijos'] ) )
  6. foreach($arreglo['Hijos'] as $hijo)
  7. echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' .$hijo['id']. '&nbsp;&nbsp;' .$hijo['nombre']. '<br>';
  8. }
  9.  

Saludos.


En línea

01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Re: imprimir arreglos multidimencionales...!!
« Respuesta #2 en: 2 Mayo 2012, 01:01 am »

si funciona gracias!!!....

ahora tengo que tratarlo de hacer de la siguiente forma,,, que pasaria si tengo 3 hijos principales, estos tienen cada uno 2 hijos y estos hijos tienen un hijo cada uno...

algo haci:

Código
  1. (
  2.    [0] => Array
  3.        (
  4.            [id] => 01
  5.            [nombre] => Alberto
  6.            [Hijos] => Array
  7.                (
  8.                    [1] => Array
  9.                        (
  10.                            [id] => 04
  11.                            [nombre] => jeferson
  12.                            [Hijos] => Array
  13.                                (
  14.                                    [id] => 03
  15.                                    [nombre] => Jossue
  16.                                )
  17.  
  18.                        )
  19.  
  20.                    [2] => Array
  21.                        (
  22.                            [id] => 05
  23.                            [nombre] => Zaida
  24.                            [Hijos] => Array
  25.                                (
  26.                                    [id] => 02
  27.                                    [nombre] => andreina
  28.                                )
  29.  
  30.                        )
  31.  
  32.                )
  33.  
  34.        )
  35.  
  36.    [1] => Array
  37.        (
  38.            [id] => 02
  39.            [nombre] => Gerson
  40.            [Hijos] => Array
  41.                (
  42.                    [1] => Array
  43.                        (
  44.                            [id] => 05
  45.                            [nombre] => cacilia
  46.                            [Hijos] => Array
  47.                                (
  48.                                    [id] => 02
  49.                                    [nombre] => oscar
  50.                                )
  51.  
  52.                        )
  53.  
  54.                    [2] => Array
  55.                        (
  56.                            [id] => 09
  57.                            [nombre] => fulgencio
  58.                            [Hijos] => Array
  59.                                (
  60.                                    [id] => 07
  61.                                    [nombre] => andrea
  62.                                )
  63.  
  64.                        )
  65.  
  66.                )
  67.  
  68.        )
  69.  
  70.    [2] => Array
  71.        (
  72.            [id] => 03
  73.            [nombre] => Zaida
  74.            [Hijos] => Array
  75.                (
  76.                    [1] => Array
  77.                        (
  78.                            [id] => 01
  79.                            [nombre] => antony
  80.                            [Hijos] => Array
  81.                                (
  82.                                    [id] => 04
  83.                                    [nombre] => albert
  84.                                )
  85.  
  86.                        )
  87.  
  88.                    [2] => Array
  89.                        (
  90.                            [id] => 08
  91.                            [nombre] => andres
  92.                            [Hijos] => Array
  93.                                (
  94.                                    [id] => 10
  95.                                    [nombre] => gregori
  96.                                )
  97.  
  98.                        )
  99.  
  100.                )
  101.  
  102.        )
  103.  
  104. )
  105.  

hice esto:

Código
  1. foreach($array as $arreglo)
  2. {
  3. echo '' .$arreglo['id']. '&nbsp;&nbsp;' .$arreglo['nombre']. '<br>';
  4.  
  5. if( is_array( $arreglo['Hijos'] ) )
  6. foreach($arreglo['Hijos'] as $hijo)
  7. echo str_repeat('&nbsp;&nbsp;&nbsp;',2).$hijo['id']. '&nbsp;&nbsp;' .$hijo['nombre']. '<br>';
  8.  
  9. if( is_array( $arreglo['Hijos']['Hijos'] ) )
  10. foreach($arreglo['Hijos']['Hijos'] as $hijo)
  11. echo str_repeat('&nbsp;&nbsp;&nbsp;',4).$hijo['id']. '&nbsp;&nbsp;' .$hijo['nombre']. '<br>';
  12.  
  13. }
  14.  

pero no imprime la de adentro, los hjos del 3er nivel
En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: imprimir arreglos multidimencionales...!!
« Respuesta #3 en: 2 Mayo 2012, 04:53 am »

Como son Hijos de 3 nivel, deben estar dentro del segundo nivel, lo cual tu lo pides desde el 1 porque no utilizas llaves

Bueno podria ser asi supongo aunque no lo he provado, ahi te puedes dar cuenta que a los hijos del 2 nivel les puse Hijo y a los del 3 nivel hijo, por lo que asi podria ser posible hacerlo.

Código
  1. foreach($array as $arreglo)
  2. {
  3. echo '' .$arreglo['id']. '&nbsp;&nbsp;' .$arreglo['nombre']. '<br>';
  4.  
  5. if( is_array( $arreglo['Hijos'] ) )
  6. foreach($arreglo['Hijos'] as $Hijo)
  7.                {
  8. echo str_repeat('&nbsp;&nbsp;&nbsp;',2).$Hijo['id']. '&nbsp;&nbsp;' .$Hijo['nombre']. '<br>';
  9.  
  10. if( is_array( $Hijo['Hijos'] ) )
  11. foreach($Hijo['Hijos'] as $hijo)
  12. echo str_repeat('&nbsp;&nbsp;&nbsp;',4).$hijo['id']. '&nbsp;&nbsp;' .$hijo['nombre']. '<br>';
  13.                }
  14. }
  15.  
En línea

01munrra

Desconectado Desconectado

Mensajes: 282



Ver Perfil
Re: imprimir arreglos multidimencionales...!!
« Respuesta #4 en: 2 Mayo 2012, 15:03 pm »

miren esta solucion:

imaginense este arreglo multidimencional.

Código
  1. $array = array(
  2.  "H0",
  3.  array(
  4.    "H1",
  5.  "H2"
  6.  )
  7.    )
  8. ),
  9.  "Q0",
  10.  array(
  11. "Q1"
  12. )
  13.  ),
  14.  "E0",
  15.  array(
  16. "E0.1"
  17. ),
  18.  "E1"
  19. ),
  20.  "R0",
  21.  "R1",
  22.  array(
  23. "R1.0",
  24. "R1.1",
  25.  "R1.1.0",
  26.  "R1.1.1"
  27.  ),
  28. "R1.2"  
  29. ),
  30.  )
  31.   );
  32.  
  33.  

y  con esta funcion recursiva te permite mostrar todo el contenido del arreglo sin importar su longitud de profundidad..

Código
  1.  
  2. function mostrar($arreglo,$nivel)
  3. {
  4.    for($i = 0; $i <count($arreglo); $i++)
  5. {
  6.        $parte = $arreglo[$i];
  7.  
  8.        if(gettype($parte) == "array")
  9. {
  10.            mostrar($parte,$nivel+4);
  11.        }
  12.        else
  13. {
  14.            echo str_repeat('_',$nivel).$parte."<BR>";
  15.        }
  16.  
  17.    }
  18. }
  19.  

y es mejor puesto que sirve para cualquier algoritmo,,,,,

gracias!,, por prestar atencion a mi duda y pues esta es una buena solucion....

 ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda matrices dinámicas multidimencionales
Programación Visual Basic
:matux: 1 1,790 Último mensaje 20 Agosto 2007, 14:03 pm
por :matux:
con arreglos
Java
artang 0 2,154 Último mensaje 31 Marzo 2009, 04:54 am
por artang
Como imprimir un .pdf que no te deja imprimir?
Windows
nichihack 8 24,866 Último mensaje 2 Mayo 2013, 15:30 pm
por sol19200
arreglos en c
Programación C/C++
el futuro 5 3,224 Último mensaje 21 Mayo 2010, 02:08 am
por @synthesize
Ayuda con ARREGLOS MULTIDIMENCIONALES (matrices)
Programación C/C++
poroto_q 6 3,265 Último mensaje 25 Julio 2012, 10:03 am
por poroto_q
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines