PHP Collection只在包含键时才平坦化对象



如果数组中包含键值为items的项,我想将它们平放,例如以下对象:

{
"key1": {
"order": 1,
"name": "Test"
},
"group1": {
"order": 1,
"name": "Test",
"items": {
"key2": {
"order": 1,
"name": "Test"
},
"key3": {
"order": 1,
"name": "Test"
}
}
}
}

应该像下面这样被格式化,所以基本上是将组内的项删除到根级别:

{
"key1": {
"order": 1,
"name": "Test"
},
"key2": {
"order": 1,
"name": "Test"
},
"key3": {
"order": 1,
"name": "Test"
}
}

我已经把这个对象放入IlluminateDatabaseEloquentCollection,所以我可以使用flatMapflatten不行,因为我不想把它完全压平。

假设您正在使用Laravel,您是否考虑了资源和集合?你也可以试试Laravel的collapse()方法,可以在这里找到:

$collection = collect([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]);
$collapsed = $collection->collapse();
$collapsed->all();
// [1, 2, 3, 4, 5, 6, 7, 8, 9]

相关内容

最新更新