Ordenar en bucles foreach [duplicado]

<?php
    $array = array(array("aaa1", "aaa2", "aaa3", "aaa4"),
                   array("bbb1", "bbb2", "bbb3", "bbb4"),
                   array("ccc1", "ccc2", "ccc3", "ccc4"), 
                   array("ddd1", "ddd2", "ddd3", "ddd4"));
    ?>
    <table border="2">
    <?php
    foreach($array as $arr): ?>
        <tr>
   <?php     foreach($arr as $a):
            echo "<td>" . $a . "</td>";
        endforeach; ?>
        </tr>
  <?php  endforeach;
    ?>
    </table>

Esto me muestra:

aaa1 aaa2 aaa3 aaa4
bbb1 bbb2 bbb3 bbb4
ccc1 ccc2 ccc3 ccc4
ddd1 ddd2 ddd3 ddd4

Me gustaría recibir:

aaa1 bbb1 ccc1 ddd1
aaa2 bbb2 ccc2 ddd2
aaa3 bbb3 ccc3 ddd3
aaa4 bbb4 ccc4 ddd4

Pero debo usar FOREACH, no FOR. Si esto es más fácil, puedo usar DIV, pero ¿cómo?

¿Cómo puedo hacerlo?

preguntado el 12 de junio de 12 a las 20:06

¿Por qué debe usar un foreach? -

¿Es esta tarea por casualidad? -

En lugar de foreach, prueba algo increíblemente decente como [esto][1]. [1]: stackoverflow.com/questions/797251/… -

2 Respuestas

foreach(array_keys($array[0]) as $key) {
    echo "<tr>";
    foreach($array as $arr) {
        echo "<td>".$arr[$key]."</td>";
    }
    echo "</tr>";
}

Aunque, estarías mejor con for...

Respondido el 12 de junio de 12 a las 20:06

Si usar DIV es una opción:

<?php
    $array = array(
        array("aaa1", "aaa2", "aaa3", "aaa4"),
        array("bbb1", "bbb2", "bbb3", "bbb4"),
        array("ccc1", "ccc2", "ccc3", "ccc4"), 
        array("ddd1", "ddd2", "ddd3", "ddd4")
    );
    foreach($array as $abcd) {
        ?><div style="float: left;"><?php
        foreach($abcd as $oneTwoThree) {
            ?><div><?php
            echo $oneTwoThree;
            ?></div><?php
        }
        ?></div><?php
    }
?>
<div style="clear: both;"></div>

Respondido el 12 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.