如何将多维数组转换为一维数组?附PHP数组示例
实现多维数组合并为一维数组的几种PHP方法
嘿,这个需求在PHP开发里挺常见的,我给你分享几个实用的实现方式,你可以根据自己的场景来选:
方法一:用array_merge + 解包运算符(适合二维数组)
如果你的数组确定只是二维结构,这种方法最简洁高效:
// 你的原始多维数组 $multiArray = [ ['manoj', 'karthi'], ['kumar'] ]; // 合并为一维数组 $flatArray = array_merge(...$multiArray); // 输出结果 print_r($flatArray);
原理很简单:解包运算符...会把多维数组里的每个子数组拆成array_merge的独立参数,直接完成合并。
方法二:递归函数(支持任意维度嵌套)
如果你的数组可能有更深的嵌套层级(比如三维甚至更多),递归函数就非常适用了,它能自动处理所有层级的数组:
function flattenArray($array) { $result = []; foreach ($array as $item) { // 如果当前元素是数组,就递归处理后再合并 if (is_array($item)) { $result = array_merge($result, flattenArray($item)); } else { // 非数组元素直接加入结果 $result[] = $item; } } return $result; } // 你的原始多维数组 $multiArray = [ ['manoj', 'karthi'], ['kumar'] ]; // 合并为一维数组 $flatArray = flattenArray($multiArray); // 输出结果 print_r($flatArray);
这个方法的优势是通用性极强,不管数组嵌套多深都能完美扁平化。
方法三:用array_reduce + array_merge(适合二维数组)
这是另一种适合二维数组的实现方式,用迭代的方式逐步合并子数组:
// 你的原始多维数组 $multiArray = [ ['manoj', 'karthi'], ['kumar'] ]; // 用array_reduce遍历合并 $flatArray = array_reduce($multiArray, function($carry, $item) { return array_merge($carry, $item); }, []); // 输出结果 print_r($flatArray);
array_reduce会把每个子数组依次合并到初始的空数组$carry里,最终得到一维数组。
内容的提问来源于stack exchange,提问作者Manoj
相关产品推荐
相关产品推荐

