如何在PHP中检查两个数组之间的相同数组

如何在PHP中检查两个数组之间的相同数组,php,arrays,Php,Arrays,我有两个数组,如下所示: $arr1 = array(1,2,3, 1,2,3, 1,2,3); $arr2 = array(1,2,3) 我需要检查它们是否是相同的数组。我做了这样的事情: $result = !empty(array_intersect($arr1, $arr2)); print $result; 结果:true 但这不符合我的要求 例如,如果我更新数组: $arr1 = array(1,2,3, 1,2,3, 1,2,3, 7); $arr2 = array(1,2,

我有两个数组,如下所示:

$arr1 = array(1,2,3, 1,2,3, 1,2,3);
$arr2 = array(1,2,3)
我需要检查它们是否是相同的数组。我做了这样的事情:

$result = !empty(array_intersect($arr1, $arr2));
print $result; 
结果:
true

但这不符合我的要求

例如,如果我更新数组:

$arr1 = array(1,2,3, 1,2,3, 1,2,3, 7);
$arr2 = array(1,2,3)
结果:仍然为
。我需要结果
false

问题:在PHP中更新数组
$arr1
后,如何得到上述数组不相同的结果


非常感谢advanced。

据我所知,您的
$arr1
只需要
$arr2
中的元素。当
$arr1
有任何新元素时,您会声明它不相同

根据这种理解,您需要使用:


您可以使用
empty
代替
count
。在这种情况下,只需切换条件


说明:

array_diff
提供任何数组中不存在的元素的差异。因此,在这种情况下,它认为:

Array
(
    [9] => 7
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 2
    [5] => 3
    [6] => 1
    [7] => 2
    [8] => 3
)
array\u intersect
提供两个数组中元素的交集。因此,在这种情况下,它认为:

Array
(
    [9] => 7
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 1
    [4] => 2
    [5] => 3
    [6] => 1
    [7] => 2
    [8] => 3
)

因此,这就是为什么在使用
array\u intersect

时,
empty
函数返回
true
的原因,即使在第一个示例中,两个数组也不相同。您希望所有元素都应该存在,对吗?此外,
empty
的实现逻辑不在这里。完全不清楚您在问什么。您在第一个示例中声明的结果不是
1
,而是
true
,因为数组交集不是空的。我建议您使用
var\u dump
一些中间值,比如
array\u intersect
的结果,因为该函数并不像您想象的那样。为什么将
7
添加到任何一个数组中都会产生
0
,背后也没有明显的逻辑,我们无法帮助您编写该代码,因为您尚未解释如何获得该结果。@meagar:更新了我的问题。。请使用
array_diff
检查
$resut=empty(array_diff($arr1,$arr2))
@Neodan:请告诉我为什么在
数组_diff
之前需要
空的
好吗?它可以工作!!!谢谢,我们可以使用
$arr1\u unique=array\u unique($arr1)如果存在更多重复项..
数组_unique
在同一数组中提供唯一元素,无法与第二个数组进行比较