请我需要帮助来根据某些条件总结数组的值
我想计算每个用户的呼叫总和,我尝试这样做,但它显示了所有查询的总和 [用户]
$array_out_ = array();
$usercalls = $usertalk = $userpause = $userwait = $userdispo = $userdead = 0;
foreach ($queryusers2 as $user) {
$current_user = $user['user'];
$usercalls += $user['calls'];
$usertalk += $user['talk'];
$userpause += $user['pause'];
$userwait += $user['wait'];
$userdispo += $user['dispo'];
$userdead += $user['dead'];
$array_out_[$current_user]['calls'] = $usercalls;
$array_out_[$current_user]['talk'] = $usertalk;
$array_out_[$current_user]['pause'] = $userpause;
$array_out_[$current_user]['wait'] = $userwait;
$array_out_[$current_user]['dispo'] = $userdispo;
$array_out_[$current_user]['dead'] = $userdead;
}
这个方法返回给我 $usercalls (305 for agent29) 和 (436 for agent117) 但是我想要 305 ofr agent 29 而只有 131 for the agent117
谢谢
您的值$usercalls
, $usertalk
,... 不会重新初始化。并为所有用户累积。您的代码仅适用于第一个用户,并且仅因为您的列表是按用户排序的。
您可以初始化一个数组并直接在其中求和:
$array_out_ = array();
foreach ($queryusers2 as $user)
{
$current_user = $user['user'];
if (!isset($array_out_[$current_user])) {
$array_out_[$current_user] = [
'calls' => 0, 'talk' => 0, 'pause' => 0, 'wait' => 0,
'dispo' => 0, 'dead' => 0
];
}
$array_out_[$current_user]['calls'] += $user['calls'];
$array_out_[$current_user]['talk'] += $user['talk'];
$array_out_[$current_user]['pause'] += $user['pause'];
$array_out_[$current_user]['wait'] += $user['wait'];
$array_out_[$current_user]['dispo'] += $user['dispo'];
$array_out_[$current_user]['dead'] += $user['dead'];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句