我有两个PHP数组
$arr1 = array ([0] => apple, [1] => banana);
$arr2 = array ([banana] => banana, [apple] => apple);
在我的网络应用程序中,我不知道命令是什么以及这些数组中有多少元素。此外,一个数组使用数字作为键,而另一个数组使用键=值。
如何检查$ arr1的值是否等于$ arr2的值?
非常感谢你的帮助
答案 0 :(得分:1)
使用array_values将两个数组的所有值提取到数字键控数组中。然后是一些排序/唯一,以确保一切都在相同的顺序和相等的测试。
答案 1 :(得分: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
}