【发布时间】:2017-02-17 20:04:08
【问题描述】:
如何比较以下两个数组? 当我使用:
array_diff($array1, $array2)
它只显示 $array1 中的所有数组,而不仅仅是 39077
Array1 ( [0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 )
Array2 ( [0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 39077 )
如果我使用array_diff_keys,我可以用1234作为array1中的值来欺骗它,因为该函数只检查有多少键而不是什么值。
Array1 ( [0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 1234)
Array2 ( [0] => 40016 [1] => 39995 [2] => 39990 [3] => 38921 [4] => 39890 [5] => 39812 [6] => 39672 [7] => 39767 [8] => 38709 [9] => 18631 [10] => 9503 [11] => 39077 )
输出将是
array()
【问题讨论】:
-
这还不清楚,但是如果你想要
39077你需要交换argsarray_diff($array2, $array1) -
但是它只是显示了array2中的所有值,之前它都在$array1中,而不是之间的区别
-
不,它没有。你的显示空和交换显示
39077:3v4l.org/aUtQ1 你确定你实际上没有运行array_intersect()?