Php 如何对多维数组中的特定键求和和计数
我有以下集合,其中包含以下数组:Php 如何对多维数组中的特定键求和和计数,php,arrays,Php,Arrays,我有以下集合,其中包含以下数组: #items: array:2 [▼ 0 => array:13 [▼ "label" => "00000000-N/A" "views" => 980 "clicks" => 444 "form_submissions_perc" => "100.0" ] 1 => array:13 [▼ "label" => "1111-N
#items: array:2 [▼
0 => array:13 [▼
"label" => "00000000-N/A"
"views" => 980
"clicks" => 444
"form_submissions_perc" => "100.0"
]
1 => array:13 [▼
"label" => "1111-N/A"
"views" => 323
"clicks" => 1009
"form_submissions_perc" => "100.0"
]
]
我试图对点击次数和平均视图进行求和,但在我的尝试中,我得到了错误的数据:
$sum = 0;
foreach ($data as $k => $subArray) {
foreach ($subArray as $id => $value) {
$sum += $subArray['views'];
}
}
dd($sum);
这是我试图求和的结果,但没有得到正确的结果
期望输出
array:2 [
"views"=> 1303,
"clicks"=> 1451
]
使用
$sum
作为数组,并获取多数组的正确值:
$sum = array(
'clicks' => 0,
'views' => 0
);
foreach ($data as $id => $value) {
$sum['clicks'] += $value['clicks'];
$sum['views'] += $value['views'];
}
dd($sum);
这是最简单的工作方式
结果:
Array ( [views] => 1303 [clicks] => 1453 )
您可以使用
$data=array\u reduce($array,function($old,$new){
返回[
“视图”=>$old[“视图”]+$new[“视图”],
“点击”=>$old[“点击”]+$new[“点击”]
];
},[“查看”=>0,“单击”=>0]);
打印“”;
打印(数据);
这也是一种干净简单的方法 这些数组中没有
总收入
键…“视图”=>数组总和(数组列($data,'views'),
Array ( [views] => 1303 [clicks] => 1453 )
$data = array_reduce($array, function ($old, $new) {
return [
"view" => $old["view"] + $new["view"],
"clicks" => $old["clicks"] + $new["clicks"]
];
}, ["view" => 0, "clicks" => 0]);
print '<pre>';
print_r($data);
foreach ($data as $k => $subArray) {
$valueSum[] = $subArray['views'];
$clickSum[] = $subArray['clicks'];
}
echo array_sum($valueSum);
echo array_sum($clickSum);