-1

可能重复:
php比较两个关联数组

我有两个 PHP 数组

$arr1 = array ([0] => apple, [1] => banana);
$arr2 = array ([banana] => banana, [apple] => apple);

在我的网络应用程序中,我不知道这些数组中的顺序是什么以及有多少元素。此外,一个数组使用数字作为键,而另一个数组使用键 = 值。

如何检查 $arr1 的值是否等于 $arr2 的值?

非常感谢你的帮助

4

2 回答 2

1

使用array_values将两个数组的所有值提取到数字键数组中。然后进行一些排序/唯一性以确保所有内容的顺序相同并进行相等测试。

于 2012-10-04T19:38:23.103 回答
1

因为他们有不同的钥匙

$arr1 = array (0 => "apple", 1 => "banana");
$arr2 = array ("banana" => "banana", "apple" => "apple");

您可以使用array_diff

if(!array_diff($arr1, $arr2))
{
    // They are the same 
}

您可以使用array_intersect

if(count($arr1) == count(array_intersect($arr1, $arr2)))
{
      // They are the same ;
}

你可以使用数组array_filter

if(array_filter($arr2,function($var)use($arr1){return !in_array($var,$arr1);}))
{
     // They are the same ;
}

您可以使用array_values

$arr2 = array_values($arr2);
sort($arr1);sort($arr2); //sort to make sure they are in the same position 

if($arr1 === $arr2)
{
    // They are the same
}
于 2012-10-04T19:39:32.883 回答