如何在属于同一用户的数组中添加两个值?

时间:2017-05-10 03:45:07

标签: php arrays loops

我正在尝试显示总分。我得到以下个人分数。每个用户都有两个“集合”,他们有一个分数。

foreach ($user['results'] as $result) {   
    error_log($result['user_id']);
    error_log($result['score']);
}

以上内容在日志中返回:

10938  // user_id
16.00  // score
10938  // user_id
12.00  // score
...

我要做的是添加16.00 + 12.00以获得总分28。谢谢你的任何建议!

2 个答案:

答案 0 :(得分:5)

您可以使用array_sum和array_chunk

$arr = array_chunk($user['results'], 2);
$sums = array_map(function($v){return array_sum(array_column($v, 'score'));}, $arr);

答案 1 :(得分:1)

试试这个简单的..根据adding all scores首先我们user_id,然后我们写入日志。

Try this code snippet here

<?php

ini_set('display_errors', 1);
//-----------------------------sample array
$user['results']=array(
    array("user_id"=>"10938","score"=>"16.00"),
    array("user_id"=>"10931","score"=>"13.00"),
    array("user_id"=>"10938","score"=>"12.00"),
    array("user_id"=>"10931","score"=>"12.00"),
    array("user_id"=>"10935","score"=>"13.00"),
);

//-------------------gathering logs data.
$logsArray=array();
foreach($user['results'] as $result)
{
    if(!isset($logsArray[$result["user_id"]]))
    {
        $logsArray[$result["user_id"]]=$result;
    }
    else
    {
        $logsArray[$result["user_id"]]["score"]+=$result["score"];
    }
}
print_r($logsArray);
//--------------------- writing to logs
foreach($logsArray as $result)
{
    error_log($result['user_id']);
    error_log($result['score']);
}