2015-02-09 79 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 
}