Laravel 集合 : Flatten with full key name

标签 laravel laravel-5 laravel-5.4 laravel-collection

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/

相关文章:

php - Mongo groupby 在 Laravel raw 方法中没有使用不同的时间

mysql - Laravel 查询生成器 - 日期查询不起作用

laravel - 如何在本地存储系统上存储文件

laravel - Laravel 5.4 上的搜索引擎优化

mysql - Laravel 5.4 连接两个表时出错

php - Laravel 的所属关系不返回值

Laravel 5 路由模型绑定(bind)在服务器上不起作用

php - Laravel 访问器、关系和预加载

找不到 PhpStorm laravel 5 方法

php - 在 Laravel 5.4 中调用未定义的方法 Illuminate\Database\Query\Builder::map()