我很难理解它是如何array_udiff运作的.
根据文件:
Run Code Online (Sandbox Code Playgroud)array_udiff ($array1, $array2, data_compare_func)[...]
data_compare_func如果第一个参数被认为是比上述第二分别小于,等于或大于函数必须返回一个整数比小于零,等于,或更大.
所以考虑这个功能:
function please_compare($a, $b) {
return $a !== $b;
};
Run Code Online (Sandbox Code Playgroud)
如果$ 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
)
*/
Run Code Online (Sandbox Code Playgroud)