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));
リファラーがある場合の各ページの平均滞在時間