欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php中如何判断数组相等 数组运算符介绍

shiping1 的头像
如何判断两个数组相等呢?其实很简单,用 == 或者 === 就可以了

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
那像 array('k'=>array())这样的多维数组能用如上方法判断相等吗?当然也可以。

 

若数组是数字索引的,就要注意一下了,见代码

 

  1. <?php  
  2. $a = array("apple""banana");  
  3. $b = array(1 => "banana""0" => "apple");  
  4.   
  5. var_dump($a == $b); // bool(true)  
  6. var_dump($a === $b); // bool(false)  
  7. ?>  

除了==这种数组操作符之外,还有其他比较绕的方法来判断。比如说,利用array_diff($a, $b)来比较两个数组的差集,如果差集是空数组的话就相等了。

 

然后再说一下 数组的 + 加号运算符。+ 和 array_merge的区别在遇到相等key时,用+时,左边数组会覆盖掉右边数组的值,array_merge相反,后面的数组覆盖掉前面的。

 

  1. <?php  
  2. $a = array("a" => "apple""b" => "banana");  
  3. $b = array("a" => "pear""b" => "strawberry""c" => "cherry");  
  4.   
  5. $c = $a + $b// Union of $a and $b  
  6. echo "Union of \$a and \$b: \n";  
  7. var_dump($c);  
  8.   
  9. $c = array_merge($a$b); // Union of $b and $a  
  10. echo "array_merge of \$b and \$a: \n";  
  11. var_dump($c);  
  12. ?>  
执行后输出:

 

 

  1. Union of $a and $b:   
  2. array(3) {  
  3.   ["a"]=>  
  4.   string(5) "apple"  
  5.   ["b"]=>  
  6.   string(6) "banana"  
  7.   ["c"]=>  
  8.   string(6) "cherry"  
  9. }  
  10. array_merge of $b and $a:   
  11. array(3) {  
  12.   ["a"]=>  
  13.   string(4) "pear"  
  14.   ["b"]=>  
  15.   string(10) "strawberry"  
  16.   ["c"]=>  
来自  http://blog.csdn.net/sky_zhe/article/details/9701101
普通分类: