2013-04-23 143 views
1

我的紀錄的例子:分組使用while循環

year quanitity name 
2012  10  john 
2012  20  mark 
2013  30  david 
2013  40  alex 
2014  50  stacy 

while (!$report->EOF){ 
     if(is_null($year) || $year <> $report->fields['year']) { 
     $year = $report->fields['year']; 
     ?> 
     <tr><td align="center" colspan="2" >Year : </td><td><?=$year ?></td></tr> 
     <? 
      } 
     ?>  
     <tr><td align="center" colspan="2" >Quantity : </td><td><?=$report->fields['quanitity'] ?></td></tr> 
     <? 
     $report->MoveNext();       
     } 

如何這樣做的結果是這樣的

year : 2012 
name : john quantity : 10 
name : mark quantity : 20 
Total : 30 

year : 2013 
name : david quantity : 30 
name : alex quantity : 40 
Total : 70 

我想打一份報告,由年級組,並獲得每年共爲

+0

謝謝@john Conde糾正我的帖子:) – 2013-04-24 00:02:28

+0

我強烈建議不要在同時迴應html的時候進行分組邏輯。第一組,第二個顯示你的HTML。您必須循環兩次,但計算機可以循環得比您可以調試代碼更快。 – Zak 2013-04-24 00:06:52

回答

2

遍歷數據,並推動各自進入其一年的bin:

$groupedData = []; 

foreach($originalData as $item){ 

    $groupedData[$item['year']][] = $item; 

} 

當然,每個陣列都有一個year鍵。

+0

還有其他答案嗎? – 2013-04-24 02:57:29

+0

@zak:請提供代碼 – 2013-04-24 08:34:05