PHP中如何遍历二维嵌套数组并合并生成单个数组?
实现方案
你之前的代码仅遍历了最外层的2个一级子数组,没有进入子数组内部遍历用户数据,因此无法得到9个元素的一维数组,可通过以下两种方案实现需求:
方案1:嵌套循环(兼容性最好,支持任意数量的子数组)
直接遍历外层数组的每个子数组,再将子数组内的用户元素逐个存入新数组即可:
$newArray = []; foreach ($unidades as $subGroup) { foreach ($subGroup as $userItem) { // 直接追加元素,新数组会自动生成连续数字索引 $newArray[] = $userItem; } }
如果需要保留原数组中用户对应的数字键(即1-9的索引),可以调整为:
$newArray = []; foreach ($unidades as $subGroup) { foreach ($subGroup as $key => $userItem) { $newArray[$key] = $userItem; } }
方案2:内置函数实现(PHP 7.4+ 支持,代码更简洁)
用数组展开运算符+array_merge直接合并所有子数组:
$newArray = array_merge(...array_values($unidades));
该写法会自动将所有子数组的元素合并为一个新的一维数组,数字索引会自动重置为从0开始的连续值。
执行以上任意方案后,$newArray就是包含9个用户数据的单层级数组,直接遍历该数组即可处理所有用户的欠付金额数据。
内容的提问来源于stack exchange,提问作者Rosamunda
相关产品推荐
相关产品推荐

