2017-06-13 9 views
0

私は、mysqlからフェッチされた連想配列を持っており、別の列の値に基づいて値を合計する必要があります。私は、連想配列を作成し、スクリーンに印刷し、それは大丈夫です。 [1] => 779700.00) Array ([4] => 868.00) Array ([2] => 102000.00) Array ([2] => 775808.00キー値に基づく連想配列の集計

私の問題は、個々のキー値のペアごとに結果を集計する必要があるということです(つまり、 '2'は877808.00になります) - キーは8個しかありません私は変数を1つずつ保持する必要があります。私は似たような質問をたくさん読んでいますが、解決策を試しましたが、ちょうど混乱してしまいました。

私は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; 
     } 
    } 
関連する問題