0
我有一个Laravel集合,如下所示,它是作为数据库查询(查询生成器,而不是Eloquent)的结果而获得的。格式Laravel集合
Illuminate\Support\Collection Object
(
[items:protected] => Array
(
[0] => stdClass Object
(
[product_name] => Product 1
[sub_product_name] => sub_prod_1
)
[1] => stdClass Object
(
[product_name] => Product 1
[sub_product_name] => sub_prod_2
)
[2] => stdClass Object
(
[product_name] => Product 1
[sub_product_name] => sub_prod_3
)
[3] => stdClass Object
(
[product_name] => Product 2
[sub_product_name] => sub_prod_21
)
[4] => stdClass Object
(
[product_name] => Product 2
[sub_product_name] => sub_prod_22
)
[5] => stdClass Object
(
[product_name] => Product 2
[sub_product_name] => sub_prod_23
)
[6] => stdClass Object
(
[product_name] => Product 3
[sub_product_name] => sub_prod_31
)
)
)
现在我想转换数组,如下所示,并将其作为API响应发送。基本上这是初始化每个产品的计数,然后计数将被添加到这个。
Array
(
[Product 1 ] => stdClass Object
(
sub_prod_1 => 0,
sub_prod_2 => 0,
sub_prod_3 => 0
),
[Product 2 ] => stdClass Object
(
sub_prod_21 => 0,
sub_prod_22 => 0,
sub_prod_23 => 0
),
[Product 3 ] => stdClass Object
(
sub_prod_31 => 0,
)
)
它也是好的,如果它有一个更层,我的意思是像[0] [产品1]
我已经使用GROUPBY这样
$productPoints = $productCollection->groupBy(function ($item) {
return $item->product_name;
});
但不给予预期的结果。我如何使用Laravel收集方法来做到这一点?