答案 0 :(得分:1)
简单的laravel要做的是:
$result = collect($array)->groupBy("furniture_id")
->map(function ($group) {
return collect($group)
->reduce(function ($carry, $groupItemObject) {
$groupItem = (array) $groupItemObject;
if ($carry == null) {
$carry = array_only($groupItem, ["furniture_id", "furniture_date", "cust_id"]) + [ "price_type" => [ ] ]; //Initial
}
$carry["price_type"][] = array_only($groupItem, [ "price", "furniture_type" ]);
return $carry;
});
});
这样做首先通过furniture_id对所有内容进行分组,然后将组映射到仅对价格和类型进行分组的单个条目。