相关疑难解决方法(0)

误解了array_udiff的行为

我很难理解它是如何array_udiff运作的.

根据文件:

array_udiff ($array1, $array2, data_compare_func)
Run Code Online (Sandbox Code Playgroud)

[...] 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)

php arrays comparison

4
推荐指数
1
解决办法
313
查看次数

标签 统计

arrays ×1

comparison ×1

php ×1