[英]Compare to values of two arrays in PHP
嗨,我想比较 2 个数组的所有值,并以 true 或 false 结束。 我正在使用下面的代码,并认为结果是 false 。 但事实并非如此,当最后一行运行时,我希望显示类似
数组 ( [0] => 0 )
但我没有显示所以假设 php 很高兴没有区别
我的代码是
$before = array('1', '1', '0', '0', '1', '0' ) ;
$after = array('0', '1', '0', '0', '1', '0' ) ;
$new_array= array_diff($before,$after);
print_r ($new_array) ;
肯定 array_diff 应该在这里发现差异吗? 任何帮助都会非常感谢
array_diff
给出了哪些元素在$before
但不在$after
。 由于两个数组均由'0'
和'1'
,因此它返回一个空数组。
您正在寻找的是array_diff_assoc
,它同时查看键和值。
请注意,您获得的输出将不是Array( [0] => 0 )
,而是Array( [0] => 1 )
,因为它给出了第一个数组中不存在的元素.
如果您希望其他输出,则需要执行array_diff_assoc($after, $before)
。
$before = array('1', '1', '0', '0', '1', '0' ) ;
$after = array('0', '1', '0', '0', '1', '0' ) ;
$new_array= array_diff_assoc($before,$after);
print_r ($new_array) ;
见http://php.net/manual/en/function.array-diff.php
“$array1 中的多次出现都以相同的方式处理。”
所以,因为你有一个零和一个,所以一切都是“相同的”。
是的, array_diff
确实发现了差异。 它找出以下数组与第一个数组之间的差异。 但是,它不会比较 0 到 0 和 1 到 1。 它只是检查 Array1 中的每个值是否在 Array2 ... ArrayN 中。 此函数返回一个数组,其中包含 Array1 中在其他数组中未找到的所有事件,而不是 true/false 布尔值。 请参阅文档中的示例 1。
嗨,我想比较 2 个数组的所有值并以真或假结束
$bool = ($array1 == $array2);
这听起来可能很傻,但比较两个不同长度的数组不会产生预期的差异。 首先检查数组的长度,如果它们匹配,则使用array_diff
。 否则你的差异将永远是空的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.