PHP处理两个二维数组的相加操作。数组相加运算符"+"双重数组时执行键名合并。第一个数组的键名具有优先级。第二个数组中新增的键名被追加。
两个双重数组的结构必须相同。键名匹配的子数组才会执行合并。键名0的子数组与键名0的子数组相加。键名1的子数组与键名1的子数组相加。
示例代码:
$array1 = [ [10,20], [30,40] ];
$array2 = [ [5,5], [10,10] ];
$result = $array1 + $array2;
输出结果:
Array ( [0] => Array ( [0] => 10 [1] => 20 ) [1] => Array ( [0] => 30 [1] => 40 ) )
数组相加运算符不执行数值累加。相同键名的子数组被直接覆盖。需要数值相加时应使用循环结构。
foreach循环遍历数组索引。array_map函数处理对应元素相加。自定义函数实现逐元素求和。
$sumArray = [];
foreach ($array1 as $key => $subArray) {
$sumArray[$key] = array_map(function($a, $b) { return $a + $b; }, $subArray, $array2[$key]);
}
键名不匹配导致数据丢失。第二个数组的新增键名被忽略。数组结构差异产生未定义行为。
array_merge_recursive函数合并相同键名。数值类型值被转换为数组。字符串键名执行递归合并。
