这可能是一个很简单的问题,但我试图解决它已经几个小时了,我觉得我的大脑现在正在一个非常狭窄和具体的角度寻找解决方案。我甚至可能使用了错误的函数!!
我有2个数组,我想要两个数组之间的任何可能的差异。这对于简单的数组(如下所示)可以正常工作:
示例:
$dummy1 = array("0" => "508", "1" => "548", "2" => "558", "3" => "538", "4" => "563", "5" => "543");
$dummy2 = array("0" => "518", "1" => "548", "2" => "558", "3" => "538", "4" => "563", "6" => "543");
关于 array_diff ($dummy2 , $dummy1 );
的正确输出是:Array ( [0] => 518 )
问题场景:我有两个数组,它们的区别在于第二个数组有一个重复值,即多了一个值,而这个值恰好与第一个数组中的一个值相同。
$array1 = array("0" => "508", "1" => "548", "2" => "558", "3" => "538", "4" => "563", "5" => "543");
$array2 = array("0" => "508", "1" => "508", "2" => "548", "3" => "558", "4" => "538", "5" => "563", "6" => "543");
echo count($array1).'<br>';
echo count($array2).'<br>'; //count is here for debugging purposes
现在使用
array_diff($array2, $array1)
函数 //或者其他的diff_()函数
我想要输出:Array ( [0] => 508 )
//(额外的508
值)基本上,就是两个数组之间的任何可能的差异。 我尝试过:
- 如果第一个检查为空,则反转数组
- 一些与
array_diff_assoc()
有关的奇怪/复杂的混合 - 一些与
array_intersect()
和array_diff()
有关的奇怪/复杂的混合