2015-02-09 49 views
-2
$intersect = array_diff($array1,$array2); 
print_r($intersect); 

我有两个阵列和我以前和array_diff和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); 

我需要的ANS:

Array ([0] => Fees 99) 

但我得到了:

Array ([1] => Fees 2 [3] => Fees 99) 
+2

适合我!请向我们展示您的** full **和真实代码 – Rizier123 2015-02-09 05:41:47

+0

在'$ array1'&'$ array2'上执行'var_dump()'以检查'费用2'是否相同,可能是空格问题。 – Sean 2015-02-09 05:43:26

+0

是的@Sean说这可能是一个空白问题 – Sky 2015-02-09 05:45:04

回答

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

然后你应该能够看到th e差异(输出示例):

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 
}