如何在PHP中合并数组仅获取无外层索引的内部子数组
PHP合并数组并丢弃外层自定义字符串键实现方案
实现思路
你需要先提取每个外层数组的所有值(丢弃外层的字符串键),再将提取到的子数组合并为新的索引数组,核心用到array_values()函数,该函数会返回数组的所有值并自动重置为从0开始的数字索引。
代码示例
基础实现(适用于2个数组的场景)
// 原始数组 $array1 = [ 'espagnol' => ['ola' => 'ketal', 'mue biene' => 'si']]; $array2 = ['français' => ['salut' => 'ça va', 'très bien' => 'oui']]; // 实现代码 $result = array_merge(array_values($array1), array_values($array2)); // 输出验证 print_r($result);
输出结果:
Array ( [0] => Array ( [ola] => ketal [mue biene] => si ) [1] => Array ( [salut] => ça va [très bien] => oui ) )
如果偏好更简洁的写法,也可以用展开运算符配合array_map实现一行完成:
$result = array_merge(...array_map('array_values', [$array1, $array2]));
通用实现(适用于任意数量数组的场景)
如果后续需要合并更多同结构数组,可以用循环批量处理:
// 把所有需要合并的数组放到统一列表中 $allToMerge = [$array1, $array2 /* 可追加更多同结构数组 */]; $result = []; foreach ($allToMerge as $item) { $result = array_merge($result, array_values($item)); }
注意事项
如果单个外层数组内包含多个子数组,该方案也会自动将所有子数组按顺序存入结果,不会保留任何外层自定义字符串键,完全符合需求。
内容的提问来源于stack exchange,提问作者Micka Bup
相关产品推荐
相关产品推荐

