array_diff()不起作用

时间:2015-02-09 05:36:26

标签: php arrays

$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 )

1 个答案:

答案 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
}