如何在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
在同一数组中提供唯一元素,无法与第二个数组进行比较