You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并foreach生成的多个多维数组?

合并嵌套多维数组的解决方案

你遇到的问题是array_merge直接使用无法处理这种外层元素为数组的嵌套结构——array_merge默认合并平级数组项,而你的原始数组外层的每个元素本身就是一个子数组,需要先提取这些子数组再合并。

原始数组结构

$originalArray = [
    [
        ['id' => '121', 'slug' => 'btm-dc-402'],
        ['id' => '122', 'slug' => 'btm-dc-403'],
    ],
    [
        ['id' => '493', 'slug' => 'jog-buah-401'],
        ['id' => '946', 'slug' => 'dps-buah-356'],
    ]
];

期望合并结果

[
    ['id' => '121', 'slug' => 'btm-dc-402'],
    ['id' => '122', 'slug' => 'btm-dc-403'],
    ['id' => '493', 'slug' => 'jog-buah-401'],
    ['id' => '946', 'slug' => 'dps-buah-356'],
]

解决方法

方法1:使用展开运算符(PHP 5.6+)

利用PHP的展开运算符...,将外层数组的每个子数组作为独立参数传入array_merge:

$mergedArray = array_merge(...$originalArray);

方法2:兼容低版本PHP(<5.6)

如果你的PHP版本低于5.6,使用call_user_func_array传递参数:

$mergedArray = call_user_func_array('array_merge', $originalArray);

两种方法最终都会生成你需要的连续一维数组结果。

内容的提问来源于stack exchange,提问作者Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:10:50