PHP中的array_merge函数如何合并两个数组
在 PHP 中我们经常需要合并数组或对象,常见需求包括两个或多个数组中合并元素,从数据库中检索结果并将它们添加到数组中,或将来自各种来源的数组合并到一起。因此,PHP 提供了一个 array_merge() 函数来帮助我们完成这个工作。 本文将讲解如何使用 PHP 中的 array_merge() 函数合并两个数组,并介绍其用法和使用注意事项。
## array_merge() 函数
array_merge() 函数是 PHP 中的内置函数之一,用于将一个或多个数组的元素合并成一个数组。此函数用于将两个或多个数组合并成一个数组。合并后的新数组包含了所有输入数组的所有元素。在处理键值索引时,特别注意输入数组的键名将覆盖同名键名(如果有)的旧键值索引。
## 语法和参数
array_merge() 函数具有以下语法:
array_merge(array1, array2, …, arrayN)
参数说明:
- array1, array2, …, arrayN - 两个或多个要合并的数组。
例如:
$a = array("apple", "banana", "orange");
$b = array("pear", "strawberry");
$c = array_merge($a, $b);
print_r($c);
输出结果为:
Array ( [0] => apple [1] => banana [2] => orange [3] => pear [4] => strawberry )
## 数组合并的注意事项
array_merge() 函数有一些使用上的注意事项:
1. 输入数组的键名将覆盖同名键名(如果有)的旧键值索引。
2. 如果两个输入数组具有相同的键名,则后一个键将覆盖前一个键,并删除前一个键值索引,而不是将两个值合并为一个。
3. 如果输入数组中的键名为数字,则键将按照数字次序重新索引。重建是非常有用的,因为跳过删除的元素。
4. 如果您尝试合并两个具有相同数字的数组,则后一个数组中的元素将覆盖前一个数组中的元素。
## 合并多维数组
在 PHP 中,多维数组是指包含多个层次的数组,例如数组的元素可以是其他数组或对象等的数组。合并多维数组与合并一维数组类似,只要使用 array_merge() 函数并传入要合并的数组即可。
例如:
$arr1 = array(
"key1" => array("apple", "banana"),
"key2" => array("orange")
);
$arr2 = array(
"key1" => array("pear"),
"key2" => array("strawberry")
);
$result = array_merge($arr1, $arr2);
print_r($result);
输出结果为:
Array
(
[key1] => Array
(
[0] => apple
[1] => banana
[2] => pear
)
[key2] => Array
(
[0] => orange
[1] => strawberry
)
)
如上所述,键名为 "key1" 的数组元素被合并为一个包含 "apple"、"banana" 和 "pear" 的数组。
## 总结
array_merge() 函数是 PHP 中用于将多个数组合并为单个数组的内置函数之一。执行此操作将使用输入数组的元素构造一个新的、包含所有输入数组元素的数组,并根据需要将相同的键名合并为一项。考虑输入数组的形式并遵循合并数组的注意事项,以确保正确合并所需的元素到单个数组中。
