我最近经常看到以下内容,我想知道它的作用是什么?我似乎无法在 PHP 手册中找到它。
$arr1 = array('key' => 'value1');
$arr2 = array('key' => 'value2');
$arr1 += $arr2;
它类似于array_merge吗?
我知道以下内容是做什么的,但我不明白使用数组时它会做什么:
$var1 = 1;
$var2 = 2;
$var1 += $var2;
echo $var1; // 3
我最近经常看到以下内容,我想知道它的作用是什么?我似乎无法在 PHP 手册中找到它。
$arr1 = array('key' => 'value1');
$arr2 = array('key' => 'value2');
$arr1 += $arr2;
它类似于array_merge吗?
我知道以下内容是做什么的,但我不明白使用数组时它会做什么:
$var1 = 1;
$var2 = 2;
$var1 += $var2;
echo $var1; // 3
$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);
结果(为清楚起见进行了编辑):
数组(5){ [0] => 字符串(8)“value1.1” [1] => 字符串(8)“value1.2” ["s"] => 字符串(8) "value2.s" [2] => 字符串(6)“值 2” [3] => 字符串(8)“value2.2” } 数组(4){ [1] => 字符串(8)“value1.1” [10] => 字符串(8)“value1.2” ["s"] => 字符串(8) "value1.s" [2] => 字符串(8)“value2.2” }
PHP 中的+
运算符在应用于数组时完成了数组UNION的工作。
$arr += array $arr1;
有效地找到 和 的并集$arr
并将$arr1
结果分配给$arr
.
两个数组之间的+操作就像一个 UNION。
和两个数组之和之间的区别array_merge()
之一在以下片段中很明显。(另见https://3v4l.org/TcNBF。)
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);
中的索引$result
将为 0。
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
索引不变;指数仍为 1。