PHP - 按定义的值条件求和数组

It0007

请我需要帮助来根据某些条件总结数组的值

我有这个结果查询: 查询结果

我想计算每个用户的呼叫总和,我尝试这样做,但它显示了所有查询的总和 [用户]

$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'];
}

另请参阅Enric Borrallo Rodriguez 的回答

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章