array_merge返回新数组,数字键重排、字符串键保留并覆盖,不修改原数组;如[10,20]与[30,40]合并为[10,20,30,40],['name'=>'Alice']与['age'=>26]合并为['name'=>'Alice','age'=>26]。

array_merge 返回一个**新的数组**,它把所有传入的数组按顺序合并,键名重新索引(数字键重排,字符串键保留并覆盖)。
数字键(索引数组)会被重新编号
如果原数组使用的是纯数字下标(如 0, 1, 2),合并后会自动从 0 开始连续递增编号,不会保留原下标。
- $a = [10, 20];
- $b = [30, 40];
- $c = array_merge($a, $b); // 结果是 [10, 20, 30, 40],键为 0,1,2,3
字符串键(关联数组)会保留,后出现的值覆盖前面的
当键是字符串时,相同键名的值会被后面的数组覆盖,前面的被丢弃。
- $x = ['name' => 'Alice', 'age' => 25];
- $y = ['age' => 26, 'city' => 'Beijing'];
- $z = array_merge($x, $y); // 结果是 ['name'=>'Alice', 'age'=>26, 'city'=>'Beijing']
混合键的情况也遵循上述规则
一个数组里既有数字键又有字符串键,数字键照样重排,字符串键照样覆盖或追加。
- $m = [0 => 'a', 'id' => 1];
- $n = [0 => 'b', 'id' => 2, 'name' => 'Tom'];
- $r = array_merge($m, $n); // 结果是 [0=>'a', 1=>'b', 'id'=>2, 'name'=>'Tom']
注意:不修改原数组,只返回新数组
array_merge 是纯函数式操作,输入的数组本身完全不变,所有变化都在返回值里体现。
- array_merge($a, $b) 不会改动 $a 或 $b
- 必须用变量接收结果,比如 $result = array_merge($a, $b);
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











