欢迎访问宙启技术站
智能推送

PHP函数之array_merge()

发布时间:2023-06-16 15:26:30

PHP的array_merge()函数是用来合并两个或多个数组,返回一个新数组。它将每个数组中的元素合并到一个新数组中,如果有重复的键名,后面的值会覆盖前面的值。

比如,我们有两个数组:

$array1 = ['a' => 1, 'b' => 2];
$array2 = ['c' => 3, 'd' => 4];

我们可以使用array_merge()函数将它们合并成一个新数组:

$result = array_merge($array1, $array2);
print_r($result);

输出结果为:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
)

可以看到,新数组中包含了数组1中的元素和数组2中的元素。

array_merge()函数还可以合并多个数组:

$array1 = ['a' => 1, 'b' => 2];
$array2 = ['c' => 3, 'd' => 4];
$array3 = ['e' => 5, 'f' => 6];

$result = array_merge($array1, $array2, $array3);
print_r($result);

输出结果为:

Array
(
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
    [f] => 6
)

可以看到,新数组中包含了所有数组的元素。

需要注意的是,array_merge()函数只能合并数字索引和关联索引数组,不能合并其它类型的数组。如果合并的数组中包含对象或资源类型的值,会抛出一个警告并返回NULL。如果有多个数组中有相同的数字索引,后面的数组会覆盖前面的数组,但关联索引不会被覆盖。

另外,array_merge()函数会按顺序合并多个数组,并将重复的键名后面数组的值覆盖前面数组的值。如果我们想要保留重复的键名,可以使用"+"运算符来实现:

$array1 = ['a' => 1, 'b' => 2];
$array2 = ['b' => 3, 'c' => 4];

$result = $array1 + $array2;
print_r($result);

输出结果为:

Array
(
    [a] => 1
    [b] => 2
    [c] => 4
)

可以看到,$array2中的"b"键覆盖了$array1中的"b"键,但"b"键的前一个值2仍然保留了下来。

总的来说,array_merge()函数非常适合合并多个数组,我们可以利用它来简化代码并提高效率。同时,需要注意一些细节,避免引起不必要的错误。