循环遍历数组和总计值

时间:2010-09-17 17:07:03

标签: php arrays loops

如果有人愿意提供帮助,我需要一些帮助。

我有一个包含值的数组,我想循环遍历,如果任何'user_id值'相同,则总计重复用户ID的'max_score'值。

Array
(
    [0] => Array
        (
            [user_id] => 2
            [max_score] => 10081
        )

    [1] => Array
        (
            [user_id] => 1
            [max_score] => 8774
        )

    [2] => Array
        (
            [user_id] => 2
            [max_score] => 5477
        )

    [3] => Array
        (
            [user_id] => 3
            [max_score] => 5267
        )

    [4] => Array
        (
            [user_id] => 1
            [max_score] => 5010
        )
)

有人知道如何做到这一点吗?

非常感谢。

2 个答案:

答案 0 :(得分:4)

$totals = array();
foreach ($your_array_values as $v) {
   $id = $v['user_id'];
   if (isset($totals[$id])) {
      $totals[$id] += $v['max_score'];
   } else {
      $totals[$id]  = $v['max_score'];
   }
}

答案 1 :(得分:1)

你需要第二个数组,用户ID为关键。你可以这样做:

$scoresums = array();
foreach ($yourarray AS $user_score) {
    if (!isset($scoresums[$user_score['user_id']])) $scoresums[$user_score['user_id']] = 0; 
    $scoresums[$user_score['user_id']] += $user_score['max_score'];
}

第三行将阻止php发出通知。