
本文介绍如何将两个键完全一致的 php 关联数组,按键对齐合并为一个二维索引数组,每个子数组包含对应键位置的两个原始值。
在 PHP 开发中,常需将结构对称的多个关联数组(如财务数据、指标对比等)按键合并为结构化二维数组,便于后续遍历、JSON 输出或前端渲染。注意:本方案要求两个数组具有完全相同的键集合(顺序可不同),否则会触发 undefined index 警告。
最简洁可靠的实现方式是使用 foreach 遍历第一个数组,并以当前键($idx)同步访问第二个数组的对应元素:
$new = [];
foreach ($array1 as $idx => $val) {
$new[] = [$val, $array2[$idx]];
}✅ 该方法天然保持键的逻辑对齐(如 array1[5] 与 array2[5] 配对),且最终结果为连续数字索引的二维数组(即 $new[0], $new[1], …),符合示例中的期望结构。
⚠️ 注意事项:
立即学习“PHP免费学习笔记(深入)”;
- 若 $array2 缺失 $array1 中的某个键(如 $idx = 7 存在于 $array1 但不在 $array2 中),会触发 Notice: Undefined index。建议提前校验键一致性:
if (!array_key_exists($idx, $array2)) { throw new InvalidArgumentException("Key {$idx} missing in array2"); } - 不要使用 array_merge() 或 array_push() —— 前者会重排键并破坏对齐,后者仅追加元素而非配对组合。
- 若需保留原始键名(如 [1 => [...], 2 => [...]]),可改为 $new[$idx] = [...],但示例需求明确要求数字索引,故推荐 [] 自增语法。
最终生成的 $new 数组可直接用于 json_encode()、foreach 遍历或传递给模板引擎,结构清晰、性能高效,是处理此类“键对齐合并”场景的标准实践。











