资讯专栏INFORMATION COLUMN

关于数组array_diff(array1, array2)求差集来比较数组是否相等的问题细究

CodeSheep / 727人阅读

摘要:无意中发现很多朋友都喜欢使用来判断两个数组是否相等,我自己也偶尔会这么使用但是今天我在写代码的过程中无意发现这么做是不准确的。

无意中发现很多朋友都喜欢使用array_diff(array1, array2)来判断两个数组是否相等,
我自己也偶尔会这么使用
但是今天我在写代码的过程中无意发现这么做是不准确的。
首先我们来看一下这个函数的释义(PHP Manual):
对比 array1 和其他一个或者多个数字,返回在 array1 中但是不在其他 array 里的值。
说实话读起来有点拗口,有些朋友喜欢直接看代码,
我们通过手册上代码发现两个数组做比较可以求差集并且间接判断相等

$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>

这里和我们预期的一样,返回的结果是Array([1] => blue)
许多朋友看到这里就结束了,
没有去考虑如果blue元素如果是在$array2中,两者比较会是什么结果?
如果你用作判断两个数组是否相等,我告诉你这里返回值仍然是空!
没错,这个函数只特么的拿array1去和后面的做对比,返回array1中的差集,
后面的数组不是亲儿子根本不管你!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29553.html

相关文章

  • 数组差/交集函数-php数组函数(二)

    摘要:求数组差集函数函数只检查了多维数组中的一维。自定义函数必须返回一个小于零,等于零,或大于零的整数。用自定义函数比较的值,函数参数为数组的值。 求数组差集函数 函数只检查了多维数组中的一维。可以用 array_diff($array1[0], $array2[0]) 检查更深的维度。 u:自定义函数比较,a(association):同时比较键和值。 自定义函数callable $v...

    ChristmasBoy 评论0 收藏0
  • 【PHP 每日函数】第 01 周期

    摘要:说明将所有键名改为全大写或者小写张三男张三男说明将一个数组分割成多个数组张三男张三男说明返回数组中指定的一列男男女男男女说明将一个数组作键值,另一个数组作值产生一个新的数组说明数组中的键是中的值,数组中的值是的值出现的次数使用键名比 2019 - 02 - 20 array_change_key_case() array_change_key_case(array $arr, [, i...

    seanHai 评论0 收藏0
  • php array_udiff函数使用

    摘要:注意键名保持不变。数据的比较是用进行的。如果认为第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。这和不同,后者使用了内部函数来比较数据。 array_udiff,在php的官网文档里是这么解释的 (PHP 5) array_udiff — 用回调函数比较数据来计算数组的差集 说明 array array_udiff ( array $arra...

    james 评论0 收藏0
  • PHP常用函数之数组处理

    摘要:数组转化字符串将一个一维数组的值转化为字符串如果有,用将一维数组的值连接为一个字符串对数组进行编码,返回格式字符串数组统计获取数组元素长度统计数组中所有值出现的次数数组格式化移除数组中重复的值并非键交换数组中的键和值重新索引,如果是关联数组 数组转化字符串 implode (string $glue,array $pieces) / implode ( array $pieces )...

    isLishude 评论0 收藏0
  • PHP 学习总结之数组

    摘要:概述我们知道,在编程语言中,数组的使用频率是很高的,几乎每个脚本都会使用到。循环缺点遍历完成之后,不能对数组进行第二次遍历数组内部指针指向了最后一个元素。 概述 我们知道,在 PHP 编程语言中,数组的使用频率是很高的,几乎每个脚本都会使用到。 PHP 自带了大量的、优秀的操作数组的函数以供我们使用,本文就对这些数组函数的使用做一些分类和总结,方便大家以后查阅。 创建 1. range...

    wangdai 评论0 收藏0

发表评论

0条评论

CodeSheep

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<