繁体   English   中英

基于键值求和一个关联数组

[英]Summing an associative array based on key value

我有一个从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); 

我将创建一个新的数组来保存您的总和的结果,然后针对每一行检查结果数组中是否已经有该$ impact的条目。 如果不创建,则添加$ 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;
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM