繁体   English   中英

比较 PHP 中两个数组的值

[英]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);

http://us2.php.net/manual/en/language.operators.array.php

这听起来可能很傻,但比较两个不同长度的数组不会产生预期的差异。 首先检查数组的长度,如果它们匹配,使用array_diff 否则你的差异将永远是空的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM