我最近经常看到以下内容,我想知道它的作用是什么?我似乎无法在PHP手册中找到它。
$arr1 = array('key' => 'value1');
$arr2 = array('key' => 'value2');
$arr1 += $arr2;
它与array_merge类似吗?
我知道以下内容,但我不明白使用数组时它的作用:
$var1 = 1;
$var2 = 2;
$var1 += $var2;
echo $var1; // 3
答案 0 :(得分:8)
$arr1 += $arr2
是$arr1 = $arr1 + $arr2
的缩写。
+
数组运算符执行以下操作:
$arr1
和$arr2
所有元素的新数组,但下一个条件除外。$arr1
的元素。$arr2
的元素将位于$arr1
。这与array_merge
不同,后者:
$arr1
和$arr2
的所有元素,但下一个条件除外。$arr2
元素。$arr1
的元素开始,然后移至$arr2
的元素。$arr2
的元素将位于$arr1
的元素之后,除了字符串元素,它们将位于它们出现的第一个数组的位置。示例:
<?php
$arr1 = array(1 => 'value1.1', 10 => 'value1.2', 's' => 'value1.s');
$arr2 = array(1 => 'value2', 2=> 'value2.2', 's' => 'value2.s');
var_dump(array_merge($arr1,$arr2));
$arr1 += $arr2;
var_dump($arr1);
结果(为清晰起见而编辑):
array(5) { [0] => string(8) "value1.1" [1] => string(8) "value1.2" ["s"] => string(8) "value2.s" [2] => string(6) "value2" [3] => string(8) "value2.2" } array(4) { [1] => string(8) "value1.1" [10] => string(8) "value1.2" ["s"] => string(8) "value1.s" [2] => string(8) "value2.2" }
答案 1 :(得分:3)
应用于数组时,PHP中的+
运算符可以完成数组 UNION 的工作。
$arr += array $arr1;
有效地找到$arr
和$arr1
的联合,并将结果分配给$arr
。
答案 2 :(得分:2)
两个数组之间的 + 操作就像一个UNION。
答案 3 :(得分:1)
array_merge()
与两个数组的总和之间的差异在以下示例中很明显:
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
$result
将包含索引为0的数组。
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
索引未更改。