laravel 求个优雅的合并一个多维数组的方式?

有个集合是这样的

$arr = [
    [
        [1, 2],
        [3, 4],
        [5]
    ],
    [
        [6, 7],
        [8, 9],
        [10]
    ]
]

如何优雅的合并得到这样的结果

$arr = [
    [1, 2, 6, 7],
    [3, 4, 8, 9],
    [5, 10]
]
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

优雅不 :smile:

$new = array_map(function(...$item){
    return array_merge(...$item);
}, ...$arr);
3年前 评论
讨论数量: 3

优雅不 :smile:

$new = array_map(function(...$item){
    return array_merge(...$item);
}, ...$arr);
3年前 评论

优雅不 :smile:

$new = array_map(function(...$item){
    return array_merge(...$item);
}, ...$arr);
3年前 评论

@zhangrongwang 谢谢大佬 如果是集合怎么实现这种 我想整个链起来

Laravel
我看这种形式 得出的$item结果好像跟array形式的不一样

3年前 评论

@www295686243 额,Collection和Array不一样,可以先看看...语法。可以toArray转成数组来处理。其实都是遍历,不过数组提供了一些内部方法,自己封装个类似的Collection方法看起来也就优雅了(能实现的都是优雅的 :joy:)。

$arr = [
    [[1, 2], [3, 4], [5]],
    [[6, 7], [8, 9], [10]]
];
array_map(function(...$item){
    return array_merge(...$item);
}, ...$arr);
// 相当于
array_map(function($v1,$v2){
    return array_merge($v1,$v2);
},  [[1, 2], [3, 4], [5]], [[6, 7], [8, 9], [10]]);
// 遍历的时候
array_map(function($v1,$v2){
    return array_merge([1, 2],[3, 4]);
},  [[1, 2], [3, 4], [5]], [[6, 7], [8, 9], [10]]);
3年前 评论
qingshui 3年前
qingshui 3年前
CYK 3年前
CYK 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!