Laravel Collections 有没有办法用键“命名空间”来展平数组。类似于:
$a = collect([
'id' => 1,
'data' => [
'a' => 2,
'b' => 3
]
]);
$a = $a->flattenWithKeysNamespace(); // <-- this does not exists
// Should returns:
// ['a' => 1, 'data.b' => 2, 'data.c' => 3]; // <-- I would like this.
我知道我可以用原始 PHP 或一些 Collection 函数的集合来完成此操作,但有时我会错过 Laravel Collection 文档中的一些内容。那么有没有一种简单的方法可以使用 Collection 函数来做到这一点?
最佳答案
我认为你是对的,没有“Laravel 方式”可以做到这一点。答案如 this如果您愿意将 Collection
转换为数组,请展示一种在 PHP 中执行此操作的方法,但既然您提到了原始 PHP,我假设您已经找到了这种解决方案。
我认为使用 Collection
方法执行此操作的最佳选择是编写与我链接的函数类似的函数,但使用 flatMap()
等函数并递归调用当您的元素也是集合时您的函数。
关于Laravel 集合 : Flatten with full key name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887238/