PHP的array_merge 和 array + array 有什么区别?
在PHP,可以使用数组联合 (+)运算符或使用 array_merge()函数来连接数组。这两种方法有细微的差别。 array_merge()函数是一个内置函数,用于连接两个数组,而不管它们的类型(数字、分类等)
array_merge()函数: array_merge() 合并一个或多个作为输入提供的数组,并提供一个新数组作为输出。在这个合并过程中,数组的值被附加到前一个数组的末尾以生成结果数组。
句法:
array array_merge( $arr1, $arr2, $arr3... )
参数: array_merge()函数接受一个或多个输入数组并将它们合并为单个结果数组。
注意:在 array_merge()函数,如果输入数组具有相同的字符串键(在分类数组的情况下),那么在结果数组中,键的后一个值将覆盖前一个。但是如果数组包含数字键(在数字数组的情况下),那么这些值不会被替换,它们只会被附加到结果数组中。同样在数字数组的情况下,键的值将从结果数组中的零开始重新编号。
数组联合 (+)运算符:另一种合并两个数组的方法是数组联合 (+)运算符。它是一个二元运算符,意味着它一次合并两个数组。 union运算符将右侧数组附加到左侧数组的末尾。
句法:
$arr3 = $arr1 + $arr2
参数: union(+)运算符处理两个数组并生成结果数组。
注意:在数组 union(+)运算符的情况下,两个数组中相同的键将在结果数组中采用与键对应的左侧数组中的值。同样在数字数组的情况下,与左手数组相同的右手数组的索引将在结果数组中被忽略。
程序:解释array_merge()和array union(+)区别的PHP代码。
0,
'one' => 1,
'two' => 2, 10, 11, 12, 13
);
$arr2 = array( 'one' => 11,
'three' => 3,
'four' => 4, 12, 13, 14, 15
);
// Merging both array using array_merge() function
// Here in $arr3 the value corresponding to
// the key 'one' will be from $arr2 and
// numeric keys will be renumbered
$arr3 = array_merge($arr1, $arr2);
echo "Result of array_merge() funcion\n";
print_r($arr3);
// Merging both array using array union(+) operator
// Here in $arr4 the value corresponding to the key
// 'one' will be from $arr1 and numeric keys
// which are repeated in $arr2 will be ignored
$arr4 = $arr1 + $arr2;
echo "\nResult of array union(+) operator\n";
print_r($arr4);
?>
Result of array_merge() funcion
Array
(
[zero] => 0
[one] => 11
[two] => 2
[0] => 10
[1] => 11
[2] => 12
[3] => 13
[three] => 3
[four] => 4
[4] => 12
[5] => 13
[6] => 14
[7] => 15
)
Result of array union(+) operator
Array
(
[zero] => 0
[one] => 1
[two] => 2
[0] => 10
[1] => 11
[2] => 12
[3] => 13
[three] => 3
[four] => 4
)