array_diff_assoc
和array_diff_uassoc
都做同样的事情(使用附加索引检查来计算差异b / w数组)唯一的区别是后者有一个callback
。
不同之处仅在于回调,在这种情况下,您应该更喜欢array_diff_uassoc
而不是array_diff_assoc
。
我想明白,如果回调与以下相同,那么每个案例的用法是array_diff_uassoc
function key_compare_func($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
答案 0 :(得分:3)
实际区别在于用户定义的函数可以是除默认值之外的任何。 您自己定义回调。
仅仅因为文档只给出了一个简单的例子并不意味着这是唯一的可能性。下面是一个回调函数的设想示例,您将在多维数组中使用tom比较元素:
function key_compare_func($a, $b) {
if ($a['key']['subkey'] === $b['key']['subkey']) {
return 0;
}
return ($a['key']['subkey'] > $b['key']['subkey'])? 1:-1;
}
编辑: PHP7有太空飞船!
function key_compare_func($a, $b) {
return $a['key']['subkey'] <=> $b['key']['subkey']
}