foreachでkeyにvalueを入れる際に、すでにvalue1があれば、(value1 + value2)/2とすれば、valueの平均が算出されるので、それをforeachで回せばよい。
具体的には、$res[$k] = ($res[$k] + $v)/2; のところ。
foreach ($cursor as $document) {
if(!is_null($document->referrer) and $document->referrer != ""){
$referrer = $document->referrer;
$avgtime = $document->avgtime;
$data[] = array($referrer=>$avgtime);
}
}
var_dump($data);
function arraySum(array $arr)
{
$res = [];
if (is_array($arr)) {
foreach ($arr as $val) {
foreach ($val as $k => $v) {
if (isset($res[$k])) {
$res[$k] = ($res[$k] + $v)/2;
} else {
$res[$k] = $v;
}
}
}
}
return $res;
}
var_dump(arraySum($data));
リファラーがある場合の各ページの平均滞在時間
