分组对象数组
问题描述:
您好,我有以下JSON:分组对象数组
[
{
"id": 1,
"company_id": 2,
"route_id": 16,
"class": "Standard",
"fare": 35,
"weekday": "monday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
},
{
"id": 2,
"company_id": 2,
"route_id": 16,
"class": "Standard",
"fare": 35,
"weekday": "tuesday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
},
{
"id": 3,
"company_id": 2,
"route_id": 16,
"class": "Standard",
"fare": 35,
"weekday": "wednesday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
},
{
"id": 4,
"company_id": 2,
"route_id": 16,
"class": "VIP",
"fare": 35,
"weekday": "thursday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
},
{
"id": 5,
"company_id": 2,
"route_id": 16,
"class": "VIP",
"fare": 35,
"weekday": "friday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
},
{
"id": 6,
"company_id": 2,
"route_id": 16,
"class": "Business",
"fare": 35,
"weekday": "saturday",
"reporting_time": "06:00 PM",
"departure_time": "07:00 PM",
"extras": []
}
]
这是怎样的数据是由我的口才模型回来后,我与格式变压器输出隐藏某些领域等
我想要将这些数据按class
属性分组。这就是我想要的数据看起来像:
[
{
"class":"Standard",
"schedules":[
{
"id":1,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"monday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
},
{
"id":2,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"tuesday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
},
{
"id":3,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"wednesday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
}
]
},
{
"class":"VIP",
"schedules":[
{
"id":4,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"thursday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
},
{
"id":5,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"friday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
}
]
},
{
"class":"Business",
"schedules":[
{
"id":6,
"company_id":2,
"route_id":16,
"fare":35,
"weekday":"saturday",
"reporting_time":"06:00 PM",
"departure_time":"07:00 PM",
"extras":[
]
}
]
}
]
如何做到这一点不改变雄辩查询或数据库结构?有没有一种方法可以使用变压器来实现这一目标?如果没有,我唯一的选择是改变雄辩的查询,我会怎么做才能让数据看起来像我想要的那样?
答
$result=[];
foreach($youarray as $key => $item)
{
$result[ $item['class'] ]['class'] = $item['class'];
$result[ $item['class'] ]['schedules'] = [$item['id'], $item['company_id'], etc. ];
}
return $result;
您可以使用收藏。收集($结果) - > GROUPBY( '类'); – yasmuru
谢谢,但不是我想要的,做到这一点,类名成为一个关键,因为数据是动态生成的,我无法预测关键是什么 – user3718908