数组运算符
联合运算符 +
把右边的数组元素附加到左边的数组后面,两个数组中都有的键名,则只用左边数组中的,右边的被忽略。
<?php
$foo = [2, 4, 5];
$bar = [0, 1, 2];
var_dump($foo + $bar); // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['foo' => '2', 'bar' => '04', 'baz' => '05'];
var_dump($foo + $bar); // array(3) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" ["baz"]=> string(2) "05" }
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['foo' => '2', 'bar' => '04', 'baz' => '05'];
var_dump($bar + $foo); // array(3) { ["foo"]=> string(1) "2" ["bar"]=> string(2) "04" ["baz"]=> string(2) "05" }
等于运算符 ==
在两个数组具有相同的键值对时返回 true
。
<?php
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['cat', 'dog'];
var_dump($foo == $bar); // bool(false)
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$baz = ['foo' => 0, 'bar' => 'dog'];
var_dump($foo == $baz); // bool(true)
全等运算符 ===
在两个数组具有相同的键值对并且顺序和类型都相同时返回 true
。
<?php
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['foo' => 0, 'bar' => 'dog'];
var_dump($foo === $bar); // bool(false)
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$baz = ['bar' => 'dog', 'foo' => 'cat'];
var_dump($foo === $baz); // bool(false)
不等运算符 !=
在两个数组不具有相同的键值对时返回 true
。
<?php
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['cat', 'dog'];
var_dump($foo != $bar); // bool(true)
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$baz = ['foo' => 0, 'bar' => 'dog'];
var_dump($foo != $baz); // bool(false)
不全等运算符 !==
在两个数组不具有相同的键值对或顺序和类型不相同时返回 true
。
<?php
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$bar = ['foo' => 0, 'bar' => 'dog'];
var_dump($foo !== $bar); // bool(true)
$foo = ['foo' => 'cat', 'bar' => 'dog'];
$baz = ['bar' => 'dog', 'foo' => 'cat'];
var_dump($foo !== $bar); // bool(true)