Laravel Eloquent Group结果排列

时间:2014-12-15 14:43:49

标签: laravel laravel-4 eloquent

我有一张名为“网格”的表格。 列是id,floor和grid。

id                 floor           grid
==========         =======       =======
1                     EG            LEFT
2                     EG            RIGHT
3                     DG            LEFT
4                     DG            RIGHT

当我获取所有数据时:

$data = Grid::all()

我有一个0 =>的数组网格对象1,1 =>网格对象2,等等..

但是如何将我的Result分组成这样的数组:

$data = array(
        'EG' => array(
            'LEFT' => Grid Object 1,
            'RIGHT' => Grid Object 2,
        )
        'DG' => array(
            'LEFT' => Grid Object 3,
            'RIGHT' => Grid Object 4,
        )
    )

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为你必须手动完成。意义循环通过集合并构建新结构

$result = array();
foreach($data as $d){
    if(!isset($result[$d->floor])){
        $result[$d->floor] = array();
    }
    $result[$d->floor][$d->grid] = $d;
}

答案 1 :(得分:1)

从目前的Laravel版本开始,您可以使用groupBy函数

$data = $data->groupBy('floor');

会给你想要的数组