数组操作运算符
运算符 | 含义 | 示例 |
+ | 联合 | $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 //仔细观察下面几个数组的特征 $test_1=array('a','b','c'); $test_2=array('a','b','c');//数组名与test_1不同,但数组内元素完全相同 $test_22=array('b','a','c');//数组名与test_1不同,但数组内元素相同,顺序不同 $test_3=array('d','e','f','g');////数组名与test_1不同,数组内元素个数与元素都不同 $test_4 = array('one' => 'C++','two' => 'C','three' => 'PHP','four' => 'JAVA','five' =>'Python' ); $test_5 = array('1' =>'计算机','2' =>'电气' ,'3' =>'自动化' ,'4' =>'物理' ,'5' =>'化学' ); if($test_1==$test_2){//判断等价 echo '$test_1==$test_2'."<br>"; } else { echo '$test_1!=$test_2'."<br>"; } //输出$test_1==$test_2 if($test_1===$test_2){//判断恒等 echo '$test_1===$test_2'."<br>"; } else { echo '$test_1!==$test_2'."<br>"; } //输出$test_1===$test_2 if($test_1==$test_22){//判断等价 echo '$test_1==$test_22'."<br>"; } else { echo '$test_1!=$test_22'."<br>"; } //输出$test_1!=$test_22 if($test_1===$test_22){//判断恒等 echo '$test_1===$test_22'."<br>"; } else { echo '$test_1!==$test_22'."<br>"; } //输出$test_1!==$test_22 $test_6=$test_1+$test_2; echo '$test_6: '; print_r($test_6); echo "<br>"; //输出Array ( [0] => a [1] => b [2] => c ) $test_7=$test_2+$test_22; echo '$test_7: '; print_r($test_7); echo "<br>"; //输出Array ( [0] => a [1] => b [2] => c ) $test_8=$test_4+$test_5; echo '$test_8: '; print_r($test_8); echo "<br>"; //输出Array ( [one] => C++ [two] => C [three] => PHP [four] => JAVA [five] => Python [1] => 计算机 [2] => 电气 [3] => 自动化 [4] => 物理 [5] => 化学 ) $test_9=$test_1+$test_3; echo '$test_9: '; print_r($test_9); echo "<br>"; //输出$test_9: Array ( [0] => a [1] => b [2] => c [3] => g ) ?>
通过上面各种眼花缭乱的比较和相加,得出的结论是:
当两个数组进行等价比较的时候:如果两个数组内的元素完全一样(元素的索引、元素个数、元素顺序以及元素值)时 <=>等价;否则不等价。
当两个数组进行恒等比较的时候:如果两个数组内的元素完全一样(元素的索引、元素个数、元素顺序、元素值及其类型)时 <=>等价;否则不等价
注意,两个的数组比较,与数组名是否相同,无关。
在两个数组进行加法操作时,如果第一个数组的元素个数大于或等于第二个数组的元素个数,则相加之后,结果与第一个数组相同,不会产生覆盖;
如果第一个数组的元素个数小于第二个数组的元素个数,则相加之后,第一个数组的所有元素会被保留,而第二个数组中比第一个是数组多出的元素会被加到第一个数组后面。