array_merge 和 array + array 有什么区别 [复制]

作者:编程家 分类: php 时间:2025-05-01

在PHP中,array_merge和array + array都是用于合并两个或多个数组的函数。但是它们之间有一些区别,下面我们将逐一介绍它们的用法和区别。

array_merge函数

array_merge函数是PHP中用于合并多个数组的内置函数。它将两个或多个数组的值合并到一个新数组中,并返回这个新数组。这个函数可以接受多个参数,每个参数可以是一个数组。

下面是一个使用array_merge函数的简单示例代码:

php

$arr1 = array("apple", "banana");

$arr2 = array("orange", "grape");

$arr3 = array("watermelon", "pineapple");

$result = array_merge($arr1, $arr2, $arr3);

print_r($result);

以上代码输出的结果是:

Array

(

[0] => apple

[1] => banana

[2] => orange

[3] => grape

[4] => watermelon

[5] => pineapple

)

我们可以看到,array_merge函数将三个数组$arr1、$arr2和$arr3中的元素合并到了一个新数组$result中。

array + array运算符

array + array运算符是PHP中用于合并两个数组的运算符。它将两个数组合并为一个新数组,并返回这个新数组。这个运算符只能用于两个数组的合并,无法用于多个数组的合并。

下面是一个使用array + array运算符的简单示例代码:

php

$arr1 = array("apple", "banana");

$arr2 = array("orange", "grape");

$result = $arr1 + $arr2;

print_r($result);

以上代码输出的结果是:

Array

(

[0] => apple

[1] => banana

[2] => orange

[3] => grape

)

我们可以看到,array + array运算符将$arr1和$arr2中的元素合并到了一个新数组$result中。

array_merge和array + array的区别

array_merge函数和array + array运算符在合并数组时有一些区别:

1. 数组键名的处理:array_merge函数会保留原始数组中的键名,如果有相同的键名,则后面的值会覆盖前面的值;而array + array运算符会保留左侧数组的键名,如果有相同的键名,则忽略右侧数组的值。

2. 索引数组和关联数组的处理:对于索引数组,array_merge函数会重新索引数组,而array + array运算符会保留原始数组的索引;对于关联数组,两者的处理方式相同。

下面是一个示例代码来说明这两者之间的差异:

php

$arr1 = array("apple", "banana");

$arr2 = array(0 => "orange", 1 => "grape");

$result_merge = array_merge($arr1, $arr2);

$result_plus = $arr1 + $arr2;

print_r($result_merge);

print_r($result_plus);

以上代码输出的结果是:

Array

(

[0] => apple

[1] => banana

[2] => orange

[3] => grape

)

Array

(

[0] => apple

[1] => banana

)

我们可以看到,array_merge函数重新索引了$arr2数组,而array + array运算符保留了$arr1数组的索引。

array_merge函数和array + array运算符都可以用于合并数组,但在处理数组键名和索引数组时有一些区别。根据具体的需求,选择合适的方法来合并数组是很重要的。