PHP - 数组运算符
在 PHP 中,数组运算符用于比较和合并数组。这些运算符对于各种任务非常有用,例如合并两个数组、测试两个数组是否相等,以及检查它们是否具有相同的顺序和数据类型。
PHP 定义了以下符号集作为数组数据类型的运算符 −
| 名称 | 符号 | 示例 | 结果 |
|---|---|---|---|
| 并集 | + | $a + $b | $a 和 $b 的并集。 |
| 相等 | == | $a == $b | 如果 $a 和 $b 具有相同的键/值对,则为 TRUE。 |
| 相同 | === | $a === $b | 如果 $a 和 $b 具有相同顺序和相同类型的相同键/值对,则为 TRUE。 |
| 不相等 | != | $a != $b | 如果 $a 不等于 $b,则为 TRUE。 |
| 不相等 | <> | $a <> $b | 如果 $a 不等于 $b,则为 TRUE。 |
| 非相同 | !== | $a !== $b | 如果 $a 与 $b 不相同,则为 TRUE。 |
示例:PHP 中的并集运算符
并集运算符将右侧数组追加到左侧数组。如果两个数组中存在相同的键,则使用左侧数组的元素,忽略右侧数组中匹配的元素。
以下示例展示了如何在 PHP 中使用并集运算符 −
<?php
$arr1=array("phy"=>70, "che"=>80, "math"=>90);
$arr2=array("Eng"=>70, "Bio"=>80,"CompSci"=>90);
$arr3=$arr1+$arr2;
var_dump($arr3);
?>
输出
它将生成以下结果 −
array(6) {
["phy"]=>
int(70)
["che"]=>
int(80)
["math"]=>
int(90)
["Eng"]=>
int(70)
["Bio"]=>
int(80)
["CompSci"]=>
int(90)
}
示例:两个数组相等的情况
如果两个数组具有相同的键值对,则认为它们相等。
在以下示例中,我们有一个索引数组和另一个关联数组,其键对应于第一个数组中元素的索引。因此,两者相等。
<?php $arr1=array(0=>70, 2=>80, 1=>90); $arr2=array(70,90,80); var_dump ($arr1==$arr2); var_dump ($arr2!=$arr1); ?>
输出
它将产生以下输出 −
bool(true) bool(false)
示例:两个数组相同的情况
只有当两个数组具有相同顺序的相同键值对集合时,它们才相同。
<?php $arr1=array(0=>70, 1=>80, 2=>90); $arr2=array(70,90,80); var_dump ($arr1===$arr2); $arr3=[70,80,90]; var_dump ($arr3===$arr1); ?>
输出
这将创建以下结果 −
bool(false) bool(true)
示例:使用不相等 (!=) 运算符
!= 运算符用于检查两个数组不相等。因此,如果数组具有不同的键值对,则返回 true;如果具有相同的键值对,则返回 false。
<?php
$arr1 = array("a" => 1, "b" => 2, "c" => 3);
$arr2 = array("a" => 1, "b" => 5, "c" => 3);
$arr3 = array("a" => 1, "b" => 2, "c" => 3);
// 检查 $arr1 和 $arr2 是否不相等
var_dump($arr1 != $arr2);
// 检查 $arr1 和 $arr3 是否不相等
var_dump($arr1 != $arr3);
?>
输出
这将产生以下输出 −
bool(true) bool(false)
示例:使用非相同 (!==) 运算符
非相同 (!==) 运算符用于检查两个数组是否不相同。因此,在我们的示例中,我们将检查返回值是否为 true,即数组不相同。
<?php $arr1 = array(0 => 70, 1 => "80", 2 => 90); $arr2 = array(0 => 70, 1 => 80, 2 => 90); var_dump($arr1 !== $arr2); $arr3 = array(0 => 70, 2 => 90, 1 => 80); var_dump($arr1 !== $arr3); ?>
输出
这将生成以下输出 −
bool(true) bool(true)
示例:使用不等(<>)运算符
不等(<>)运算符的工作方式与 '!=' 相同,但明确看到它的运作方式是很好的。
<?php
$arr1 = array("a" => 10, "b" => 20);
$arr2 = array("a" => 10, "b" => 25);
var_dump($arr1 <> $arr2);
?>
输出
这将产生以下结果 −
bool(true)