可能重复:
php比较两个关联数组
我有两个 PHP 数组
$arr1 = array ([0] => apple, [1] => banana);
$arr2 = array ([banana] => banana, [apple] => apple);
在我的网络应用程序中,我不知道这些数组中的顺序是什么以及有多少元素。此外,一个数组使用数字作为键,而另一个数组使用键 = 值。
如何检查 $arr1 的值是否等于 $arr2 的值?
非常感谢你的帮助
可能重复:
php比较两个关联数组
我有两个 PHP 数组
$arr1 = array ([0] => apple, [1] => banana);
$arr2 = array ([banana] => banana, [apple] => apple);
在我的网络应用程序中,我不知道这些数组中的顺序是什么以及有多少元素。此外,一个数组使用数字作为键,而另一个数组使用键 = 值。
如何检查 $arr1 的值是否等于 $arr2 的值?
非常感谢你的帮助
使用array_values将两个数组的所有值提取到数字键数组中。然后进行一些排序/唯一性以确保所有内容的顺序相同并进行相等测试。
因为他们有不同的钥匙
$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
}