2017-06-13 65 views
0

我有一個從mysql獲取的關聯數組,我需要根據不同列中的值對數值進行求和。我創建了一個關聯數組,並打印到屏幕上,看起來沒問題。它返回我需要的東西,看起來像[1] => 779700.00) Array ([4] => 868.00) Array ([2] => 102000.00) Array ([2] => 775808.00根據鍵值對一個關聯數組求和

我的問題是,我需要能夠結果爲每個單獨的鍵值對(所以例如'2'將總結爲877808.00) - 只有八個關鍵值,我需要一個變量來保存每一個。我讀過很多類似的問題,並嘗試過這些解決方案,但讓我感到絕望困惑。

我假設我需要一個foreach循環,請有人指出我正確的方向,我需要做什麼?

while($row_outputs=mysqli_fetch_array($run_projects)) 
       { 

       $Id = $row_outputs['id']; 
       $impact = $row_outputs['impact']; 
       $cost = $row_outputs['total_cost']; 

       $summing_array = array($impact=>$cost); 

回答

0

我會做一個新的數組來保存您的款項的結果,然後對每一行檢查,如果您已經有結果數組中的$影響的條目。如果沒有創建它,如果是這樣,請將$ cost添加到它。這可以這樣完成:

$results = []; 
    while ($row_outputs = mysqli_fetch_array($run_projects)) { 

     $Id = $row_outputs['id']; 
     $impact = $row_outputs['impact']; 
     $cost = $row_outputs['total_cost']; 

     if(isset($results[$impact])){ 
      $results[$impact] += $cost; 
     }else{ 
      $results[$impact] = $cost; 
     } 
    } 
相關問題