我有一个名为"grids"的表。列包括 id、floor 和网格。
id floor grid
========== ======= =======
1 EG LEFT
2 EG RIGHT
3 DG LEFT
4 DG RIGHT
当我通过以下方式获取所有数据时:
$data = Grid::all()
我有一个数组,其中 0 => 网格对象 1,1 =>网格对象 2,依此类推。
但是怎么可能将我的结果分组到这样的数组中:
$data = array(
'EG' => array(
'LEFT' => Grid Object 1,
'RIGHT' => Grid Object 2,
)
'DG' => array(
'LEFT' => Grid Object 3,
'RIGHT' => Grid Object 4,
)
)
提前致谢
从目前的Laravel版本开始,你可以使用groupBy 函数
$data = $data->groupBy('floor');
会给你所需的数组
我认为您必须手动执行此操作。意义循环通过集合并构建新结构
$result = array();
foreach($data as $d){
if(!isset($result[$d->floor])){
$result[$d->floor] = array();
}
$result[$d->floor][$d->grid] = $d;
}