遍历数组并汇总具有相同 id 的值


Loop through Array and sum up values with same id

我完全停电了。我有一个包含 n 个元素的数组,其中包含一个团队的结果,例如:

数组(团队ID,赢,输,平,进球);

array(1, 2, 3, 4, 5);
array(2, 2, 3, 4, 5);
array(1, 1, 2, 2, 6);
array(2, 2, 3, 4, 5);

我想遍历这个数组,并在第二个数组中汇总每个 team-id 的值。如:

$results = getResults();
$final = array();
foreach ($results as $result) {
foreach ($results as $res) {
if ($res['team_id'] == $result['team_id']) {
...
}
}
}
foreach ($final as $finalresult) {
...print result
}

最后,我想要一个数组,例如在这个例子中,有 2 个值和 2 个不同的团队 ID,每个值都相加,但我现在有一个停电。

有人有解决方案吗?

谢谢。

您正在运行嵌套的循环,这意味着您实际上是在对 n^2 条记录求和。假设两个数组之间的数组键相同,那么您只需要一个循环:

$arr1 = array(...);
$arr2 = array(...);
$sum = 0;
foreach($arr1 as $key => $value) {
    $sum += $arr1[$key] + $arr2[$key];
}

如果键不同,你必须弄清楚匹配两个数组的成员。

你的代码令人困惑,但我想它会给出一个提示:

$results = getResults();
$final = array();
foreach ($results as $result) {
    if(!isset($final[$result['team_id']])) {
        $final[$result['team_id']] = $result['wins'];
    } else {
        $final[$result['team_id']] += $result['wins'];
    }
}
foreach($final as $key=>$value) {
    echo $key . ' ' . $value . '</br>';
}