如果有人愿意提供帮助,我需要一些帮助。
我有一个包含值的数组,我想循环遍历,如果任何'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 ) )
有人知道如何做到这一点吗?
非常感谢。
答案 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发出通知。