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

PHP多维数组合并:是否有内置函数可将嵌套数组展平为一维数组

合并PHP多维数组为一维数组的内置函数方案

当然有更简洁的PHP内置函数可以实现这个需求,不用手动循环遍历。下面给你两个常用的方案:

方案1:使用array_merge()配合解包运算符(PHP 5.6+)

这是最直观的方式,利用PHP的参数解包特性,把多维数组的每个子数组作为array_merge()的参数传入:

// 你的原多维数组
$originalArray = [
    'section1' => ['item1' => 0, 'item2' => 0],
    'section2' => ['item27' => 0, 'item8' => 0]
];

// 合并为一维数组
$result = array_merge(...$originalArray);

// 输出结果就是你想要的:Array ( [item1] => 0 [item2] => 0 [item27] => 0 [item8] => 0 )
print_r($result);

注意:如果不同子数组中有重复的键名,后面的子数组会覆盖前面的键值,这和array_merge()的默认行为一致。

方案2:使用array_reduce()(兼容更低PHP版本)

如果你的PHP版本低于5.6,没法用解包运算符,可以用array_reduce()来迭代合并每个子数组:

$originalArray = [
    'section1' => ['item1' => 0, 'item2' => 0],
    'section2' => ['item27' => 0, 'item8' => 0]
];

$result = array_reduce($originalArray, 'array_merge', []);

print_r($result);

这个方法的原理是:以空数组作为初始值,每次迭代把当前子数组和结果数组合并,最终得到一维数组。

相比手动循环,这两种内置函数的写法更简洁,也符合PHP的惯用写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 11:02:29