【发布时间】:2017-10-08 19:02:02
【问题描述】:
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 方式”可以做到这一点。如果您愿意将
Collection转换为数组,则this 之类的答案显示了一种在 PHP 中执行此操作的方法,但是由于您提到原始 PHP,我假设您已经找到了这种解决方案。我认为使用Collection方法最好的办法是编写与我链接的函数类似的函数,但使用flatMap()之类的函数,并在您的元素也是一个集合时递归调用您的函数。 -
谢谢!您可以发表您的评论作为答案,我会接受!
标签: laravel laravel-5 laravel-5.4 laravel-collection