HOWTO · PHP
Cómo hacer eco o imprimir un array en PHP
Este artículo presenta cómo hacer eco o imprimir un array en PHP. Incluye foreach loop, función print_r() y función var_dump().
En esta página
No se puede pasar un array directamente a echo para mostrar sus valores como una lista legible. En PHP, usa foreach si quieres dar formato a cada valor, print_r() para obtener una representación legible con sus claves o var_dump() cuando necesites detalles de diagnóstico, como los tipos de los valores. Los ejemplos siguientes usan la misma lista de flores para que puedas comparar el resultado.
Usa el bucle foreach para hacer eco o imprimir un array en PHP
Un bucle foreach asigna cada valor del array a una variable del bucle, uno por iteración. Esa variable está disponible dentro del cuerpo del bucle, donde puedes enviarla a echo, añadir etiquetas o aplicar otro formato. El bucle recorre el array por ti; no necesitas avanzar manualmente un puntero del array.
Ejecuta este ejemplo:
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
<?php
$flowers = ["Rose", "Lili", "Jasmine", "Hibiscus", "Tulip", "Sun Flower", "Daffodil", "Daisy"];
echo "The array is:\n";
foreach ($flowers as $flower) {
echo $flower . "\n";
}
?>
The array is:
Rose
Lili
Jasmine
Hibiscus
Tulip
Sun Flower
Daffodil
Daisy
Esto muestra únicamente los valores, en el orden de iteración. Usa la forma key => value de foreach si también necesitas cada clave. El ejemplo actual usa un array con índices numéricos, por lo que muestra los valores sin etiquetas de índice.
Usa la función print_r() para hacer eco o imprimir un array en PHP
print_r() produce una representación legible para las personas que incluye cada clave del array y el valor correspondiente. Resulta útil cuando quieres inspeccionar todo el contenido sin escribir un bucle ni dar formato a cada elemento. El segundo argumento, a menudo llamado parámetro de retorno, es opcional y su valor predeterminado es false: la función muestra la representación. Si pasas true, devuelve esa representación como una cadena, que puedes guardar o combinar con otro texto.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
<?php
$flowers = ["Rose", "Lili", "Jasmine", "Hibiscus", "Tulip", "Sun Flower", "Daffodil", "Daisy"];
print_r($flowers);
?>
Array
(
[0] => Rose
[1] => Lili
[2] => Jasmine
[3] => Hibiscus
[4] => Tulip
[5] => Sun Flower
[6] => Daffodil
[7] => Daisy
)
Por ejemplo, $representation = print_r($flowers, true); guarda el texto con formato en lugar de mostrarlo de inmediato. Elige esta opción para obtener una vista compacta y legible; no indica el tipo de PHP de cada valor.
Usa la función var_dump() para hacer eco o imprimir un array en PHP
var_dump() está pensada para la depuración. Emite una representación de diagnóstico que indica el tamaño del array, sus claves, los tipos de los valores y las longitudes de las cadenas. A diferencia de print_r(), no devuelve esa representación como una cadena para su uso habitual; su valor de retorno no es el texto de diagnóstico formateado. Por eso resulta útil para comprobar qué valores contiene PHP, aunque es menos adecuada para mostrar contenido a los usuarios.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
<?php
$flowers = ["Rose", "Lili", "Jasmine", "Hibiscus", "Tulip", "Sun Flower", "Daffodil", "Daisy"];
var_dump($flowers);
?>
array(8) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(5) "Tulip"
[5]=>
string(10) "Sun Flower"
[6]=>
string(8) "Daffodil"
[7]=>
string(5) "Daisy"
}
Usa foreach cuando necesites controlar cómo se muestran los valores, print_r() para obtener una vista legible de las claves y los valores, y var_dump() para inspeccionar tipos y longitudes durante la depuración. Estos ejemplos muestran valores de tipo cadena sin anidar. Con arrays anidados, cada función de inspección también representa el contenido anidado, mientras que al aplicar un formato personalizado con foreach debes decidir cómo recorrerlo.