Imprimir un array de forma legible en PHP
Imprimir un array de forma legible en PHP
En ocasiones queremos ver el contenido de un array para ver si estamos obteniendo la información que buscamos. Lo más sencillo es usar las funciones var_dump o print_r, que nos muestran en pantalla el contenido del array.
Si nuestro array es pequeño, no hay problema. Pero no es raro que tengamos un array de arrays de arrays… ad infinitum, sobre todo si trabajamos con bases de datos que nos devuelven muchos resultados en un solo Array.
Pongamos un ejemplo:
$coche1 = Array("Renault","Megane",Array("5 puertas","Diesel","Rojo")); $coche2 = Array("Opel","Corsa",Array("3 puertas","Gasolina","Gris")); $coche3 = Array("Seat","Ibiza",Array("5 puertas","Diesel","Verde")); $coche4 = Array("Audi","TT",Array("3 puertas","Gasolina","Plateado")); $coches = Array($coche1,$coche2,$coche3,$coche4);
Ya tenemos un array simple que nos servirá de ejemplo. ¿Qué ocurre si usamos la función var_dump para ver su contenido?
var_dump($coches); /* Resultado: array(4) { [0]=> array(3) { [0]=> string(7) "Renault" [1]=> string(6) "Megane" [2]=> array(3) { [0]=> string(9) "5 puertas" [1]=> string(6) "Diesel" [2]=> string(4) "Rojo" } } [1]=> array(3) { [0]=> string(4) "Opel" [1]=> string(5) "Corsa" [2]=> array(3) { [0]=> string(9) "3 puertas" [1]=> string(8) "Gasolina" [2]=> string(4) "Gris" } } [2]=> array(3) { [0]=> string(4) "Seat" [1]=> string(5) "Ibiza" [2]=> array(3) { [0]=> string(9) "5 puertas" [1]=> string(6) "Diesel" [2]=> string(5) "Verde" } } [3]=> array(3) { [0]=> string(4) "Audi" [1]=> string(2) "TT" [2]=> array(3) { [0]=> string(9) "3 puertas" [1]=> string(8) "Gasolina" [2]=> string(8) "Plateado" } } } */
Correcto. Todo en una linea. La función print_r nos ofrece una visión un poco más clara, eliminando los tipos de los contenidos, pero no nos soluciona mucho…
print_r($coches); /* Resultado: Array ( [0] => Array ( [0] => Renault [1] => Megane [2] => Array ( [0] => 5 puertas [1] => Diesel [2] => Rojo ) ) [1] => Array ( [0] => Opel [1] => Corsa [2] => Array ( [0] => 3 puertas [1] => Gasolina [2] => Gris ) ) [2] => Array ( [0] => Seat [1] => Ibiza [2] => Array ( [0] => 5 puertas [1] => Diesel [2] => Verde ) ) [3] => Array ( [0] => Audi [1] => TT [2] => Array ( [0] => 3 puertas [1] => Gasolina [2] => Plateado ) ) ) */
Seguimos en las mismas, nos podemos dejar los ojos intentando separar lo que nos interesa. ¿Es que no hay una forma simple de mostrar los contenidos?
Por supuesto que sí: Las etiquetas <pre> y </pre>. Si usamos estas etiquetas para englobar el contenido de var_dump o print_r, nos aparece todo listado y de forma clara:
echo('<pre>'); var_dump($coches); echo('</pre>'); /* Resultado: array(4) { [0]=> array(3) { [0]=> string(7) "Renault" [1]=> string(6) "Megane" [2]=> array(3) { [0]=> string(9) "5 puertas" [1]=> string(6) "Diesel" [2]=> string(4) "Rojo" } } [1]=> array(3) { [0]=> string(4) "Opel" [1]=> string(5) "Corsa" [2]=> array(3) { [0]=> string(9) "3 puertas" [1]=> string(8) "Gasolina" [2]=> string(4) "Gris" } } [2]=> array(3) { [0]=> string(4) "Seat" [1]=> string(5) "Ibiza" [2]=> array(3) { [0]=> string(9) "5 puertas" [1]=> string(6) "Diesel" [2]=> string(5) "Verde" } } [3]=> array(3) { [0]=> string(4) "Audi" [1]=> string(2) "TT" [2]=> array(3) { [0]=> string(9) "3 puertas" [1]=> string(8) "Gasolina" [2]=> string(8) "Plateado" } } } */
Lo mismo si usamos print_r, yo diria que incluso más claro:
echo('<pre>'); var_dump($coches); echo('</pre>'); /* Resultado: Array ( [0] => Array ( [0] => Renault [1] => Megane [2] => Array ( [0] => 5 puertas [1] => Diesel [2] => Rojo ) ) [1] => Array ( [0] => Opel [1] => Corsa [2] => Array ( [0] => 3 puertas [1] => Gasolina [2] => Gris ) ) [2] => Array ( [0] => Seat [1] => Ibiza [2] => Array ( [0] => 5 puertas [1] => Diesel [2] => Verde ) ) [3] => Array ( [0] => Audi [1] => TT [2] => Array ( [0] => 3 puertas [1] => Gasolina [2] => Plateado ) ) ) */
¡Sencillisimo! Vuestra vista está a salvo, y ahorraréis mucho tiempo que antes dedicabais a descifrar contenidos.
«La mayoría de los buenos programadores programan no
porque esperen que les paguen o que el público los adore,
sino porque programar es divertido.»
– Linus Torvalds.
6 Comentarios
Ruben Munoz Autor
Hola Adrián, pues aquí en el blog de Codigonexo tienes multitud de artículos, luego recomendamos también los cursos de domestika pues son una buena herramienta para avanzar.
Adrian Huerta
Hola Ruben, soy nuevo en esto, pero la verdad es que es de las mejores y mas claras explicaciones, que veo, tienes algun otro lugar donde pueda seguir tu trabajo o donde impartas cursos, te agradezco mucho el tiempo que dedicaste para compartir tu conocimiento, saludos.
david
si podes corregi el print_r en el segundo ejemplo
david
muy buena gacias.
Sebastian
Muy buen informacion....
Serj Dx
muy buena. Estoy empezando con PHP y me sirvió de mucho tu información gracias...