分组对象数组

分组对象数组

问题描述:

您好,我有以下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":[ 

      ] 
     } 
     ] 
    } 
] 

如何做到这一点不改变雄辩查询或数据库结构?有没有一种方法可以使用变压器来实现这一目标?如果没有,我唯一的选择是改变雄辩的查询,我会怎么做才能让数据看起来像我想要的那样?

+1

您可以使用收藏。收集($结果) - > GROUPBY( '类'); – yasmuru

+0

谢谢,但不是我想要的,做到这一点,类名成为一个关键,因为数据是动态生成的,我无法预测关键是什么 – user3718908

$result=[]; 
    foreach($youarray as $key => $item) 
    { 
     $result[ $item['class'] ]['class'] = $item['class']; 
     $result[ $item['class'] ]['schedules'] = [$item['id'], $item['company_id'], etc. ]; 
    } 
    return $result;