array_merge() 是 PHP 中用于 合并一个或多个数组 的函数。它将传入的数组按照顺序合并成一个新数组。


📌 语法:

array array_merge(array $array1, array $array2, ...);
  • 如果数组中有 重复的字符串键,后面的值会 覆盖前面的值
  • 如果是 数字键(整数键),则不会覆盖,而是 重新索引(从 0 开始)

✅ 示例 1:合并普通索引数组

$a = ["apple", "banana"];
$b = ["cherry", "date"];

$result = array_merge($a, $b);
// 结果:["apple", "banana", "cherry", "date"]

✅ 示例 2:合并关联数组(字符串键)

$a = ["name" => "Alice", "age" => 25];
$b = ["age" => 30, "city" => "Paris"];

$result = array_merge($a, $b);
// 结果:["name" => "Alice", "age" => 30, "city" => "Paris"]
// 注意:'age' 被后面的数组覆盖了

✅ 示例 3:混合索引数组(数字键会重排)

$a = [0 => "A", 2 => "B"];
$b = [1 => "C", 3 => "D"];

$result = array_merge($a, $b);
// 结果:["A", "B", "C", "D"]

✅ 示例 4:添加新元素

$original = ["red", "green"];
$new = array_merge($original, ["blue"]);
// 结果:["red", "green", "blue"]

⚠️ 注意事项:

情况行为
数字键值追加,重新编号
字符串键如果重复,后者覆盖前者
仅一个参数返回该数组的复制
非数组如果参数不是数组,会发出警告(除非使用 ... 展开)

🧠 扩展:使用扩展语法 ...(PHP 7+)

$a = ['a' => 1];
$b = ['b' => 2];
$c = ['c' => 3];

$merged = [...$a, ...$b, ...$c];
// 结果:["a" => 1, "b" => 2, "c" => 3]

🆚 + 运算符 VS array_merge()

$a = ['x' => 1];
$b = ['x' => 2];

print_r($a + $b);           // ['x' => 1]  => 左侧优先,跳过右侧重复键
print_r(array_merge($a, $b)); // ['x' => 2]  => 右侧覆盖左侧

如你需要更复杂的数组合并(例如:多维数组合并、保留重复值、递归合并),可以用 array_merge_recursive() 或手动实现逻辑。如果你需要示例代码,请告诉我你的具体需求。