代码之家  ›  专栏  ›  技术社区  ›  Илья Зелень

Laravel数组按分组并合并每个组

  •  0
  • Илья Зелень  · 技术社区  · 7 年前

    我有这样一个数组,怎么分组呢 date 合并每组?

    $input =  [
        [
            'date' => '2018-09-25',
            'foo' => 'value1',
        ],
        [
            'date' => '2018-09-25',
            'bar' => 'value2'
        ],
        [
            'date' => '2018-09-26',
            'baz' => 'value3'
        ]
    ];
    

    [
        [
            'date' => '2018-09-25'
            'foo' => 'value1'
            'bar' => 'value2'
        ],
        [
            'date' => '2018-09-26'
            'baz' => 'value3'
        ]
    ]
    
    1 回复  |  直到 7 年前
        1
  •  4
  •   Илья Зелень    7 年前

    你可以用拉威尔 collection .

    首先你需要分组 groupBy map 并合并每个子数组。

    代码:

    $result = collect($input)
        ->groupBy('date')
        ->map(function ($item) {
            return array_merge(...$item->toArray());
        });
    

    您将获得以下收藏:

    enter image description here

    values toArray ).

    结束代码:

    $result = collect($input)
        ->groupBy('date')
        ->map(function ($item) {
            return array_merge(...$item->toArray());
        })
        ->values()
        ->toArray();