2012-06-12 38 views
0
<?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> 

這告訴我:秩序的foreach循環

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

我想收到:

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

但我必須使用FOREACH,不爲。如果這更容易,我可以使用DIV,但是如何?

我該怎麼做?

+0

爲什麼你必須使用'foreach'? – afuzzyllama

+2

這個作業是否有機會? –

+0

而不是foreach嘗試一些令人難以置信的像[這] [1]一樣體面。 [1]:http://stackoverflow.com/questions/797251/transposing-multidimensional-arrays-in-php –

回答

1

如果使用的DIV是一個選項:

<?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> 
3
foreach(array_keys($array[0]) as $key) { 
    echo "<tr>"; 
    foreach($array as $arr) { 
     echo "<td>".$arr[$key]."</td>"; 
    } 
    echo "</tr>"; 
} 

雖然,你將與for更好...