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()
或手动实现逻辑。如果你需要示例代码,请告诉我你的具体需求。
发表回复