php中判断数组相等的方法以及数组运算符介绍

yipeiwu_com5年前PHP代码库

如何判断两个数组相等呢?其实很简单,用 == 或者 === 就可以了
php手册里说明如下:

那像 array('k'=>array())这样的多维数组能用如上方法判断相等吗?当然也可以。
若数组是数字索引的,就要注意一下了,见代码:

复制代码 代码如下:

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

除了==这种数组操作符之外,还有其他比较绕的方法来判断。比如说,利用array_diff($a, $b)来比较两个数组的差集,如果差集是空数组的话就相等了。
然后再说一下 数组的 + 加号运算符。+ 和 array_merge的区别在遇到相等key时,用+时,左边数组会覆盖掉右边数组的值,array_merge相反,后面的数组覆盖掉前面的。

复制代码 代码如下:

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Union of $a and $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = array_merge($a, $b); // Union of $b and $a
echo "array_merge of \$b and \$a: \n";
var_dump($c);
?>

执行后输出:

复制代码 代码如下:

Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
array_merge of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

相关文章

用php+javascript实现二级级联菜单的制作

 大体思路是这样的:为了不让先前的页面刷新,我用iframe潜入了一个二级子页面,用来读取数据库中的数据,最后把想要的数据传递给父级页面,完成数据的选择和转移。 主要程序代码如...

PHP数据库处理封装类实例

本文实例讲述了PHP数据库处理封装类。分享给大家供大家参考,具体如下: MySQL的操作相关类,检查并使用了mysqli <?php //sampl...

基于PHPexecl类生成复杂的报表表头示例

基于PHPexecl类生成复杂的报表表头示例

本文实例讲述了基于PHPexecl类生成复杂的报表表头。分享给大家供大家参考,具体如下: 以前一直有需求,能把Execl里面的数据导入数据库,并且把数据库里面的数据导出到Execl中。...

PHP实现批量重命名某个文件夹下所有文件的方法

本文实例讲述了PHP实现批量重命名某个文件夹下所有文件的方法。分享给大家供大家参考,具体如下: 自己手动这样一个个的重命名,累啊。所以还是偷懒一下。 我重命名的规则是把所有有空格的全部替...

深入解析fsockopen与pfsockopen的区别

按手册上说,这两个函数的唯一区别是,pfsockopen是持续连接,而fsockopen不是. 我写了个代码了一下: 复制代码 代码如下:<?php $data="1,0,721,...