PHP二维数组转一维数组有五种方法:一、array_merge(...$arr),要求PHP≥7.4;二、array_reduce($arr,'array_merge',[]),兼容PHP5.3+;三、foreach嵌套循环手动追加;四、array_walk_recursive()适用于深层嵌套;五、array_column配合array_merge适用于关联数组特定列提取。

如果PHP中存在一个二维数组,需要将其转换为一维数组,则可以通过多种方式实现扁平化处理。以下是几种常用且有效的解决方案:
该方法适用于所有子数组均为索引数组且无键名冲突的场景,利用展开运算符将多个子数组作为参数传递给array_merge函数。
1、定义原始二维数组,例如 $arr = [[1, 2], [3, 4], [5]];
2、调用 array_merge(...$arr) 将其合并为一维数组;
立即学习“PHP免费学习笔记(深入)”;
3、结果为 [1, 2, 3, 4, 5],注意:此方法要求PHP版本不低于7.4。
该方法通过累积合并的方式逐个处理子数组,兼容性更广,支持PHP 5.3及以上版本,不依赖展开运算符。
1、定义原始二维数组,例如 $arr = [[1, 2], [3, 4], [5]];
2、执行 $flat = array_reduce($arr, 'array_merge', []);
3、必须传入第三个参数空数组作为初始值,否则首次调用会出错。
该方法逻辑清晰、易于理解,适用于需要控制追加行为或对元素进行预处理的场景。
1、初始化一个空数组 $result = [];
2、遍历原二维数组:foreach ($arr as $sub) { foreach ($sub as $item) { $result[] = $item; } };
3、此方式保留元素顺序,且可随时在内层循环中加入条件判断或类型转换。
该函数递归遍历所有层级的数组值,适用于深层嵌套结构(包括三维及以上),但对纯二维数组同样有效。
1、定义空数组 $result = [];
2、调用 array_walk_recursive($arr, function($value) use (&$result) { $result[] = $value; });
3、该函数会跳过键名,仅提取所有叶子节点的值,不适用于需保留键名映射关系的场景。
当二维数组为关联数组形式(如由数据库查询返回的多行记录),且只需提取某一列时,可先用array_column抽取再合并。
1、若目标是提取所有'key'字段值,执行 $values = array_column($arr, 'key');
2、若需合并全部列值,需先用array_values统一键名,再配合array_merge;
3、此方案本质是针对特定字段的扁平化,非通用二维转一维,需谨慎匹配数据结构。
以上就是php二维数组怎么变成一位数组_PHP将二维数组扁平化处理的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号