$intersect = array_diff($array1,$array2);
print_r($intersect);
我有两个数组,我使用了array_diff
$array1 =Array ( [0] => Fees 1 [1] => Fees 2 [2] => Fees 24 [3] => Fees 99 )
$array2 = Array ( [0] => Fees 1 [1] => Fees 24 [2] => Fees 2 )
用过:
array_diff($array1,$array2);
我需要:
Array ( [0] => Fees 99 )
但我得到了:
Array ( [1] => Fees 2 [3] => Fees 99 )
答案 0 :(得分:0)
由于空格,您的代码可能无法正常工作。因此,为了摆脱这些空间,我使用array_map()
结合trim()
来删除这些空格。
最后,我使用array_values()
重新索引从0开始的数组。
print_r(array_values(array_diff(array_map("trim", $array1), array_map("trim", $array2))));
输出:
Array ( [0] => Fees 99 )
另外,要查看差异和空格的不同,请使用var_dump()
,如下所示:
var_dump($array1);
var_dump($array2);
然后你应该能够看到差异(示例输出):
array(4) {
[0]=>
string(7) "Fees 1 "
[1]=>
string(8) " Fees 2 "
//^ See here
[2]=>
string(8) "Fees 24 "
[3]=>
string(8) "Fees 99 "
}
array(3) {
[0]=>
string(7) "Fees 1 "
[1]=>
string(8) "Fees 24 "
[2]=>
string(7) "Fees 2 "
//^ See here
}