Estoy tratando de crear una tabla con HTML y PHP que muestre una matriz diferente (la matriz eventualmente provendrá de una tabla DB) en cada columna de la tabla HTML/PHP. Hay 3 columnas.
<table class="table-styling"> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <?php $arr = array(1, 2, 3, 4); foreach ($arr as $value) { echo '<tr>'. '<td>'.$value.'</td>'; } $arr2 = array(5, 6, 7, 8); foreach ($arr2 as $value2) { echo '<td>'.$value2.'</td>'; } $arr3 = array(9, 10, 11, 12); foreach ($arr3 as $value3) { echo '<td>'.$value3.'</td>'.'</tr>'; } ?> </table>CSS
.table-styling{ border-collapse: collapse; width: 100%; color: #eb4034; font-family: monospace; font-size: 15px; text-align: left; } .table-styling th{ background-color: #eb4034; color: white }Resultado actual
| columna 1 | columna 2 | columna 3 | |||
|---|---|---|---|---|---|
| 1 | |||||
| 2 | |||||
| 3 | |||||
| 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | |||||
| 11 | |||||
| 12 |
Resultado Esperado
| columna 1 | columna 2 | columna 3 |
|---|---|---|
| 1 | 5 | 9 |
| 2 | 6 | 10 |
| 3 | 7 | 11 |
| 4 | 8 | 12 |
El problema no es sobre la base de datos.
Debe verificar su lógica sobre cómo usa los bucles for.
Porque la lógica para usar bucles for en tu mente es incorrecta.
Por favor, déjame explicarte por qué.
En la cuarta fila de su resultado incorrecto están
4 -- 5,6,7,8 -- 9.
¿Pero por qué? Déjame explicarte.
Hay tres bucles en su código.
Al final del primer ciclo, su código hace 4.
En el segundo bucle, tu código hace 5,6,7,8.
Al comienzo del tercer ciclo, su código hace 9.
Y luego eco para terminar la cuarta fila.
Por eso la cuarta fila muestra 4 5 6 7 8 9.
Desea usar 3 números de bucle for de 1 dimensión para mostrar una tabla de 2 dimensiones.
Pero esto es un error lógico en su forma de pensar.
Cómo se hace eco de una tabla mediante los bucles for de 2 niveles (no el bucle for de 1 nivel).
Por ejemplo, es posible que necesite una matriz de 2 dimensiones.
Y haz un código como el siguiente.
$myArray = array( array(1, 5, 9), array(2, 6, 10), array(3, 7, 11), array(4, 8, 12), ); $out = "<table>"; foreach($myArray as $row) { $out .= "<tr>"; foreach ($row as $cell) { $out .= "<td>" . $cell . "</td>"; } $out .= "</tr>"; } $out .= "</table>"; echo $out;