1

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

数组(团队,胜利,失败,平局,进球);

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

我想遍历这个数组并在第二个数组中总结每个团队 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,每个值相加,但目前我有一个停电。

有人有解决方案吗?

谢谢。

4

2 回答 2

2

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

$arr1 = array(...);
$arr2 = array(...);
$sum = 0;

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

如果键不相同,那么您将不得不找出匹配两个数组的成员。

于 2012-08-13T20:09:01.073 回答
1

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

$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>';
}
于 2012-08-13T20:08:29.640 回答