首页 > 解决方案 > Laravel - 如何按键分组数据并保存到数组?

问题描述

我有表属性值(id,值,attr_group_id)。
我需要返回按键 attr_group_id 分组的集合。

在使用 ORM RedBean 的清晰 php 中,我做了:

$data = \DB::table('attribute_values')->get();
$attrs = [];
foreach ($data as $k => $v){
    $attrs [$v['attr_group_id']][$k] = $v['value'];
   }
return $attrs;

在这个之后,我需要同样使用 Laravel:

  $data = \DB::table('attribute_values')->get();

我的桌子

  id    value     attr_group_id
   1     one          1
   2     two          1
   3     three        2
   4     four         2
   5     five         3
   6     six          3

我需要结果

   Array(
[1] => Array 
    (
    [1] => one
    [2] => two
    )
[2] => Array 
    (
    [3] => three
    [4] => four
    )
[3] => Array 
    (
    [5] => five
    [6] => six
    )
  )

标签: phplaravel

解决方案


获取所有数据,并将其映射到每一行的属性 id 将起作用,

$data = \DB::table('attribute_values')->get();
$attrs = [];
foreach ($data as $key => $value) {
    // -> as it return std object
    $attrs[$value->attr_group_id][] = $value->value;
}
dd($attrs);

推荐阅读