例如,如果我有两个数组:
$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'c', 'b', 'd');
假设两个数组具有相似的顺序(基于最后一个和第一个值),我将如何检查它们的键值对在定义的顺序中是否存在两个差异?
除此之外,我如何返回(可能通过另一个函数),这些差异到底在哪里,按键?
将 array_diff_assoc() 与回调一起使用将给出差异的结果,但仅返回第一个数组键和值。如果想要第二个数组的差异,请颠倒参数的顺序
$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'c', 'b', 'd');
function key_compare ($a, $b) {
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
})
print_r(array_diff_uassoc($array1,$array2, "key_compare");
结果。。。数组 ( [1] => b [2] => c )
反。。。
print_r(array_diff_uassoc($array2,$array1, "key_compare");
结果。。。数组 ( [1] => c [2] => b )