2011-09-27 68 views
0

我現在有以下的數組:多維陣列的foreach - 顯示在不同的表

Array 
(
    [group] => Array 
     { 
      [5] => group1-title 
      [6] => group2-title 
     } 
    [treatment] => Array 
     (
      [5] => Array 
       (
        [16] => Array 
         (
          [title] => title1 
          [description] => description1 
          [price] => price1 
         ) 

        [17] => Array 
         (
          [title] => title2 
          [description] => description2 
          [price] => price2 
         ) 
      [6] => Array 
       (

        [21] => Array 
         (
          [title] => title3 
          [description] => description3 
          [price] => price3 
         ) 
       } 
     } 
} 

(在現實所以它已被剪切,得到上述的示例的陣列的數據大)我我試圖做的是在陣列上運行一個foreach循環,以使我能夠將數據按其組(數組鍵)分開(數組鍵[5][6]

我希望得到的最終結果如下:

組別1 - 標題


標題1 | Desc |價格
標題2 | Desc |價格


組2,標題


標題3 | Desc |價格


我已經與內部foreach循環foreach循環至今未遂。這拉細節和回聲良好 - 但我無法弄清楚如何在foreach循環期間成功分組數據。

回答

3

下面介紹一種方法。抓住第一個數組項並將其用於標題。然後使用第一項中的鍵循環訪問陣列的其餘部分以顯示結果。顯然,我的顯示代碼很快且很髒,但這應該讓你開始。

foreach($your_array['group'] as $iGroupId => $sTitle) { 
    echo 'Group: ' . $sTitle . "\n"; 
    foreach($your_array['treatment'][$iGroupId] as $aGroup) { 
     echo implode('|', $aGroup); . "\n" 
    } 
} 
3
$data = array(); //your data array above 

//loop through the groups  
foreach($data['group'] as $key=>$group){ 
    //echo group header and table start 
    echo "<h1>$group</h1>"; 
    echo "<table border=1>"; 
    //loop through the data with the corresponding group key 
    foreach($data['treatment'][$key] as $row){ 
     //echo row data 
     echo "<tr>"; 
     echo "<td>{$row['title']}</td>"; 
     echo "<td>{$row['description']}</td>"; 
     echo "<td>{$row['price']}</td>"; 
     echo "</tr>"; 
    } 
    //close table. 
    echo "</table>"; 
}