Иль*_*ько 0 arrays laravel laravel-collection
我有这样一个数组,如何分组date
并合并每个组?
$input = [
[
'date' => '2018-09-25',
'foo' => 'value1',
],
[
'date' => '2018-09-25',
'bar' => 'value2'
],
[
'date' => '2018-09-26',
'baz' => 'value3'
]
];
Run Code Online (Sandbox Code Playgroud)
最终结果是这样的:
[
[
'date' => '2018-09-25'
'foo' => 'value1'
'bar' => 'value2'
],
[
'date' => '2018-09-26'
'baz' => 'value3'
]
]
Run Code Online (Sandbox Code Playgroud)
您可以使用 laravel集合。
首先需要通过groupBy方法进行分组,然后映射每个组并合并每个子数组。
代码:
$result = collect($input)
->groupBy('date')
->map(function ($item) {
return array_merge(...$item->toArray());
});
Run Code Online (Sandbox Code Playgroud)
你会得到这个合集:
最后删除键(日期),您可以使用values,只需将集合转换为数组(toArray)。
结束代码:
$result = collect($input)
->groupBy('date')
->map(function ($item) {
return array_merge(...$item->toArray());
})
->values()
->toArray();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3377 次 |
最近记录: |