我正在尝试显示总分。我得到以下个人分数。每个用户都有两个“集合”,他们有一个分数。
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
。谢谢你的任何建议!
答案 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
,然后我们写入日志。
<?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']);
}