2017-06-13 120 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; 
     } 
    } 
相关问题