php对象的组数组和按对象键求和

php对象的组数组和按对象键求和,php,arrays,object,Php,Arrays,Object,我有一个php对象数组,看起来像这样: Array ( [0] => stdClass Object ( [order_id] => 1513 [order_total] => 12500.00 [sales_rep] => Doe_John ) [1] => stdClass Object ( [order_id] => 1046 [order_tota

我有一个php对象数组,看起来像这样:

Array
(
[0] => stdClass Object
    (
        [order_id] => 1513
        [order_total] => 12500.00
        [sales_rep] => Doe_John
    )

[1] => stdClass Object
    (
        [order_id] => 1046
        [order_total] => 3300.00
        [sales_rep] => Doe_John
    )

[2] => stdClass Object
    (
        [order_id] => 337
        [order_total] => 4500.00
        [sales_rep] => Mosby_Ted
    )
)
Array
(
[0] => stdClass Object
    (
        [sales_rep] => Doe_John
        [total_sales] => 15800.00
    )

[1] => stdClass Object
    (
        [sales_rep] => Mosby_Ted
        [total_sales] => 4500.00
    )
)
我试图得到一个数组,它的设置更像这样:

Array
(
[0] => stdClass Object
    (
        [order_id] => 1513
        [order_total] => 12500.00
        [sales_rep] => Doe_John
    )

[1] => stdClass Object
    (
        [order_id] => 1046
        [order_total] => 3300.00
        [sales_rep] => Doe_John
    )

[2] => stdClass Object
    (
        [order_id] => 337
        [order_total] => 4500.00
        [sales_rep] => Mosby_Ted
    )
)
Array
(
[0] => stdClass Object
    (
        [sales_rep] => Doe_John
        [total_sales] => 15800.00
    )

[1] => stdClass Object
    (
        [sales_rep] => Mosby_Ted
        [total_sales] => 4500.00
    )
)
我想将所有对象与同一个“sales_rep”组合,并获得它们关联的“order_total”的总和,您可以在上面我想要的数组中看到一个示例。你有没有想过如何做到这一点?我已经做了几个小时了,还没有找到解决办法

非常感谢你的帮助

试试这个

$tmp = array();
foreach($objs as $obj){ // where `$objs` is your objects
    if(!in_array($obj->sales_rep,array_keys($tmp))){
        $tmp[$obj->sales_rep] = (object)array(
            'sales_rep' => $obj->sales_rep,
            'total_sales' => $obj->order_total
        );
    }else{
        $tmp[$obj->sales_rep]->total_sales += $obj->order_total;
    }
}
print_r(array_values($tmp));

您是否可以使用一个数组,其中键是销售代表,值是总销售额,以简化查找?当然,我也可以这样认为。这其实不是个坏主意。最后,我只是想列出一份销售代表的名单,并按销售额降序排列他们的总销售额。非常感谢,这很有效。现在我只需要弄清楚如何按顺序进行排序。谢谢你!我切换了sales_rep和total_sales的顺序,所以total_sales在数组中排在第一位,只是做了一个
arsort($tmp)按总数、降序排序。工作得很有魅力。再次感谢您的回答。虽然这个代码片段可能会解决这个问题,但代码外确实有助于提高您文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性!