PHP中多维数组的比较
我试图与多维数组进行比较,但我不能只使用array\u diff\u assoc()。我试图比较的数组都是关联数组,它们都经过排序,因此键的顺序相同。在大多数情况下,阵列的结构是相同的。我似乎不知道如何比较存储数组的元素,我可以比较包含一个值的元素,很好。有人知道我能做什么吗?手册页上有一个,它似乎满足了你的要求。手册页上有一个,它似乎满足了你的要求。不清楚你是否想知道它们是否相等,或者实际上想要一个差异是什么的输出 如果是前者,则可以使用递归函数以正确的方式执行:PHP中多维数组的比较,php,multidimensional-array,associative-array,Php,Multidimensional Array,Associative Array,我试图与多维数组进行比较,但我不能只使用array\u diff\u assoc()。我试图比较的数组都是关联数组,它们都经过排序,因此键的顺序相同。在大多数情况下,阵列的结构是相同的。我似乎不知道如何比较存储数组的元素,我可以比较包含一个值的元素,很好。有人知道我能做什么吗?手册页上有一个,它似乎满足了你的要求。手册页上有一个,它似乎满足了你的要求。不清楚你是否想知道它们是否相等,或者实际上想要一个差异是什么的输出 如果是前者,则可以使用递归函数以正确的方式执行: $array1 = arra
$array1 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('foo')));
$array2 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('bar')));
var_dump(arrayEqual($array1, $array2));
function arrayEqual($a1, $a2)
{
if (count(array_diff($a1, $a2)))
return false;
foreach ($a1 as $k => $v)
{
if (is_array($v) && !arrayEqual($a1[$k], $a2[$k]))
return false;
}
return true;
}
或者使用这样一个完整的黑客:
if (serialize($array1) == serialize($array2))
现在还不清楚你是想知道它们是否相等,还是想知道它们之间的差异是什么 如果是前者,则可以使用递归函数以正确的方式执行:
$array1 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('foo')));
$array2 = array('a' => 1, 'b' => 2, 'c' => array('ca' => 1, 'cb' => array('bar')));
var_dump(arrayEqual($array1, $array2));
function arrayEqual($a1, $a2)
{
if (count(array_diff($a1, $a2)))
return false;
foreach ($a1 as $k => $v)
{
if (is_array($v) && !arrayEqual($a1[$k], $a2[$k]))
return false;
}
return true;
}
或者使用这样一个完整的黑客:
if (serialize($array1) == serialize($array2))
如果您只是想看看它们是否不同(而不是具体的不同),您可以尝试以下方法:
return serialize($array1) == seralize($array2);
这将使您对两个数组的相等性有一个肯定或否定的判断。如果您只是想看看它们是否不同(而不是具体的不同),您可以尝试以下方法:
return serialize($array1) == seralize($array2);
这将给你两个数组相等的一个肯定或否定。这正是我所需要的。当我看手册的时候,我错过了,哈哈!这正是我需要的。当我看手册的时候,我错过了,哈哈!