Cómo mostrar un array de PHP en una tabla HTML

Inicio / Cómo hacer para... / Cómo mostrar un array de PHP en una tabla HTML

Los arreglos (o arrays) en PHP son, por lejos, la estructura de datos más utilizada.

A diferencia de otros lenguajes, los de PHP son altamente flexibles (no tienen una longitud predeterminada, pueden albergar datos de diferente tipo, etc…).

Una necesidad bastante común cuando se trabaja en desarrollo de aplicaciones web es la visualización del contenido de un arreglo en forma de tabla HTML.

El ejemplo más claro es cuando el arreglo contiene los resultados de una consulta a una base de datos.

Existen varios modos de lograr esta visualización. A continuación verás algunos de ellos, asumamos que todos los ejemplos comienzan con la definición del arreglo:

<?php

$a = [
        [
                'Nombre' => 'Mauro',
                'Apellido' => 'Chojrin',
                'Correo' => 'mauro.chojrin@leewayweb.com',
        ],
        [
                'Nombre' => 'Alberto',
                'Apellido' => 'Loffatti',
                'Correo' => 'aloffatti@hotmail.com',
        ],
        [
                'Nombre' => 'Foo',
                'Apellido' => 'Bar',
                'Correo' => 'foo_bar@example.com',
        ]
];

En rigor de verdad, se trata de una matriz (Arreglo de arreglos) pero lo uso para hacer algo más realistas los ejemplos… si fuera un arreglo unidimensional sería ligeramente más sencillo.

En cualquiera de los casos lo que se obtendrá será:

Mostrar una tabla HTML usando PHP puro

La primera forma es hacerlo 100% en PHP:

$s = '<table border="1">';
foreach ( $a as $r ) {
        $s .= '<tr>';
        foreach ( $r as $v ) {
                $s .= '<td>'.$v.'</td>';
        }
        $s .= '</tr>';
}
$s .= '</table>';

echo $s;

En este caso lo que se ve es cómo se recorre el arreglo y se va conctatenando todo el HTML en el string $s, el cual es emitido al final.

Otra forma ligeramente diferente de hacerlo es realizar los echo directamente:

echo '<table border="1">';
foreach ( $a as $r ) {
        echo '<tr>';
        foreach ( $r as $v ) {
                echo '<td>'.$v.'</td>';
        }
        echo '</tr>';
}
echo '</table>';

Mostrar una tabla usando PHP dentro de HTML

La segunda forma es mezclar HTML con PHP:

<table border="1">
<?php
foreach ( $a as $r ) {
        ?>
        <tr>
        <?php
        foreach ( $r as $v ) {
        ?>
                <td><?php echo $v;?></td>
        <?php
        }
        ?>
        </tr>
<?php
}
?>
</table>

Este código debe escribirse en un archivo .php (a pesar de que la gran mayoría de su contenido sea sólo HTML) para que el servidor web lo interprete correctamente.

Esta es una de las características interesantes que tiene php respecto de otros lenguajes (al menos en lo que al desarrollo web respecta).

Cuando el intérprete lee la secuencia de escape ?> se limita a enviar todo lo que aparece sin hacer ningún tipo de análisis (Hasta que vuelve a aparecer <?php). Esto es lo que permite embeber código de otros lenguajes dentro del de PHP.

A simple vista puede parecerte algo más molesto (eso de estar abriendo y cerrando php todo el tiempo) pero piensa en las ventajas que te da:

  1. Está más claramente separada la lógica de la presentación (Lo que es HTML es HTML y lo que es PHP es PHP).
  2. Los editores de texto (IDEs especialmente) serán capaces de diferenciar claramente el HTML del PHP y de esa forma marcar errores específicos).

Un punto que se deriva del primero es que de esta forma es más fácil trabajar con otros miembros del equipo que no sepan de php pero si de HTML (Por ejemplo diseñadores gráficos).

Una pequeña variante que a veces se utiliza para esto es:

<table border="1">
<?php
foreach ( $a as $r ):
        ?>
        <tr>
        <?php
        foreach ( $r as $v ):
        ?>
                <td><?php echo $v;?></td>
        <?php
        endforeach;
        ?>
        </tr>
<?php
endforeach;
?>
</table>

Este tipo de aproximación es la que toman los frameworks y motores de templating (como Twig por ejemplo).

Es una buena práctica separar el código que hace a la presentación de aquel que hace a la lógica (Conexión a la base de datos, ejecución de consultas, etc…).

¿Te interesa conocer más sobre PHP? Este curso te puede ayudar.

mchojrin

Director Académico y Docente at Leeway Academy
Hola! Soy Mauro Chojrin, estudié la Lic. en Ciencias de la Computación en la Universidad de Buenos Aires.

Me desempeño como docente de programación desde el año 1997.

Pasé por diferentes instituciones (Escuela Técnica ORT, Digital House, EducacionIT, ITMaster, Escuela DaVinci entre otros).

Actualmente coordino los cursos dictados en Leeway Academy y desarrollo sistemas usando PHP y framework Symfony

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: