当前位置: 首页 > 后端技术 > PHP

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

时间:2023-03-30 06:07:15 PHP

无意间发现很多朋友喜欢用array_diff(array1,array2)来判断两个数组是否相等,以及我偶尔会这样做但是今天我无意中发现在写代码的过程中这样做是不准确的。首先我们看一下这个函数的定义(PHP手册):将array1与一个或多个其他数进行比较,返回array1中的值,但不返回其他数组中的值。说实话,读起来有点费口舌。有些朋友喜欢直接看代码。我们通过手册中的代码发现,可以通过比较两个数组来找出差异,间接判断是否相等。"green","red","blue","red");$array2=array("b"=>"绿色","黄色","红色");$result=array_diff($array1,$array2);print_r($result);?>这里和我们预想的一样,返回的结果是Array([1]=>blue)很多朋友看到这里就完了,没有考虑如果蓝色元素在$array2中,两者会是什么比较的结果?如果用它来判断两个数组是否相等,我告诉你这里的返回值还是空的!没错,这个函数只是比较array1和后者,返回array1的差值。后面的阵法,不是你亲生的儿子不管你!