我将如何检查具有相似顺序的数组中键 => 值配对差异的数量


How would i check to see the number of key => value pairing differences in arrays that have similar orders?

例如,如果我有两个数组:

$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 )