我不太理解array_udiff
的工作原理。
根据文档:
因此考虑这个函数:array_udiff ($array1, $array2, data_compare_func)
[...]
data_compare_func
function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second.
function please_compare($a, $b) {
return $a !== $b;
};
如果$a等于$b,该方法将返回0,否则返回1(因为这里的原因)。
(这里不会返回-1,我感觉解释来自此处,但我只能比较值是否不同,而不能比较哪个大于另一个。)
有人能解释一下以下代码片段中
array_udiff
的行为吗?我还包括了array_diff
的输出,实际上这是我期望的行为?$array1 = array('a', 'b', 'c', 'd');
$array2 = array('a', 'b', 'c');
print_r(array_udiff($array1, $array2, 'please_compare'));
/* Returns:
Array
(
[0] => a
[1] => b
[3] => d
)
*/
print_r(array_diff($array1, $array2));
/* Returns:
Array
(
[3] => d
)
*/