2013-11-15 159 views
0

我有一個名爲groupeditems一個數組,看起來像這樣:多維數組

array(2) { 
    ["foo1」]=> 
    array(4) { 
    [0]=> 
    array(20) { 
     [0]=> 
     string(3) "658" 
     ["id"]=> 
     string(3) "658" 
     [1]=> 
     string(12) "Flying Foxes" 
     ["song_name"]=> 
     string(12) "Flying Foxes" 
     [2]=> 
     string(4) "Moby" 
     ["song_artist"]=> 
     string(4) "Moby" 
    } 
    [1]=> 
    array(20) { 
     [0]=> 
     string(4) "1232" 
     ["id"]=> 
     string(4) "1232" 
     [1]=> 
     string(13) "Memory Gospel" 
     ["song_name"]=> 
     string(13) "Memory Gospel" 
     [2]=> 
     string(4) "Moby" 
     ["song_artist"]=> 
     string(4) "Moby" 
      } 
    } 
    [「foo2」]=> 
    array(3) { 
    [0]=> 
    array(20) { 
     [0]=> 
     string(4) "2047" 
     ["id"]=> 
     string(4) "2047" 
     [1]=> 
     string(9) "Yesterday" 
     ["song_name"]=> 
     string(9) "Yesterday" 
     [2]=> 
     string(11) "The Beatles" 
     ["song_artist"]=> 
     string(11) "The Beatles" 
      } 
    } 
} 

而且我想在HTML表格呼應這個數組,所以它看起來像:

<h2> foo1 <h2> 

     flying foxes   moby     
     memory gospel   moby      

<h2> foo2 <h2> 

     yesterday   the beatles   

我使用下面的PHP:

foreach ($groupedItems as $mks){ 
    echo "<table>"; 
    echo '<h2>'; 
    echo $mks[0]; 
    echo '</h2>'; 
     foreach ($mks as $qid=>$rate){ 
      echo "<tr><td>".$rate[1]."</td><td>".$rate[2]."</td></tr>"; 
      } 
    echo "</table>"; 
    } 

然而,$mks[0]是不是b eing顯示,應該顯示「foo1」或「foo2」,而只是打印「Array」。當然,我在這裏做得不對,但我想不出什麼...

感謝您的幫助

回答

0

試試下面的代碼:

foreach ($groupitems as $key => $foo) { 
    echo '<h2>' . $key . '</h2>' . '<br>'; 
    foreach ($foo as $key => $value) { 
     echo $value['id'] . $value['song_name'] . $value['song_artist']; 
     echo <br>; 
    } 
} 

我不知道,雖然你爲什麼具有相同的值兩次(一次在整數索引中,一次在字符串索引中)。在輸出任何東西之前,您應該選擇其中一個並保持一致。

乾杯。

+0

完美!感謝您的建議,我會這樣做。乾杯 – anto0522

0

如果您修改陣列,去除多餘的部分,即

[0]=>   # this is redundant, remove 
    string(3) "658" # this is redundant, remove 
    ["id"]=> 
    string(3) "658" 

讓你的陣列會是這個樣子:

Array 
(
    [foo1] => Array 
     (
      [id] => 658 
      [song_name] => flying Floxes 
      [song_artist] => moby 
     ) 

    [foo2] => Array 
     (
      [id] => 68 
      [song_name] => flying 
      [song_artist] => mo 
     ) 

) 

然後執行:

foreach ($a as $key=>$mks){ 
    echo "<table>"; 
    echo '<h2>'; 
    echo $key; 
    echo '</h2>'; 
     foreach ($mks as $qid=>$rate){ 
      echo "<tr><td>".$qid."</td><td>".$rate."</td></tr>"; 
      } 
    echo "</table>"; 
    } 

希望這幫助