Imprimir un array de forma legible en PHP

PHP   |   4 Comentarios

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.

¿Te ha gustado el artículo?
1 Star2 Stars3 Stars4 Stars5 Stars (2 votos, promedio: 4,50 sobre 5)
Loading...
Artículo escrito por

¡Exprésate! Dejanos tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

4 Comentarios

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...