-2

array_diff_assoc并且array_diff_uassoc两者都做同样的事情(使用附加索引检查计算差异 b/w 数组)唯一的区别是后一个 accpet a 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;
}
4

1 回答 1

3

实际的区别是用户定义的函数可以是默认值以外的任何东西。您自己定义回调。

仅仅因为文档只给出了一个简单的例子并不意味着这是唯一的可能性。这是一个人为的回调函数示例,您将在多维数组中使用 tom compare 元素:

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']
}
于 2013-01-22T17:37:55.710 回答