我有以下简单的函数来尝试理解array_udiff()
函数
function udiffCompare( $value, $value2 )
{
echo $value . " - " . $value2 . "<br />";
}
$newArray = array(
'value2' => 2,
'value3' => 3,
'value4' => 4
);
$newArray2 = array(
'value2' => 2,
'value3' => 3,
'value4' => 4
);
array_udiff( $newArray, $newArray2, 'udiffCompare' );
我希望这只是返回:
2 - 2
3 - 3
4 - 4
但是它返回:
3 - 2
4 - 3
3 - 2
4 - 3
4 - 4
4 - 3
4 - 3
3 - 2
这让我相信我真的不理解 array_udiff()
的工作原理。
即使我将上面的 echo 语句替换为:
if( $value == $value2 ) { return 1; } 否则{ 返回0; }
即使传递给函数的所有值都相等,输出的数组也完全为空。
请问有人可以发光吗?
最佳答案
array_udiff
计算两个数组的差异。这是 $newArray
中不在 $newArray2
中的所有条目。在这种情况下,结果是一个空数组,因为没有区别。
您看到的输出是因为您正在回显正在比较的每个值。这是一个较大列表的原因是,为了找出差异,array_udiff
必须将 $newArray
中的每个值与 $newArray2< 中的每个值进行比较
.
关于php - 理解 array_udiff(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17401716/