2011-01-20 57 views
5

我很困惑array_diff行爲array_diff問題

爲什麼流派不存在於差異數組? 你知道如何解決這個問題嗎?

-code

<?php 
$array1 = array 
(
    'value01' => '0', 
    'value02' => 'v2', 
    'genre' => '1', 
    'type' => 'text', 
    'contry' => 'us', 
    'data' => '1', 
); 
$array2 = array 
(
    'value01' => 'v1', 
    'value02' => 'v2', 
    'genre' => '0', 
    'type' => 'text', 
    'contry' => 'canada', 
    'data' => '1', 
); 

print_r(array_diff($array1,$array2)); 

-result

$ php diff.php 
Array 
(
    [contry] => us 
) 

回答

5

array_diff工作該數組,並忽略這些鍵。

因爲genre您的第一陣列中的值是1,這意味着,如果該值1用於第二陣列中的任何鍵發生,則genre密鑰將被從所述第一數組中刪除。

看看你的陣列沒有鑰匙,你會明白我的意思。你基本上有兩個值列表,['0','v2','1','text','us','1']['v1','v2','0','text','canada','1']。第一個列表中唯一沒有出現在第二個列表中的值是'us'

我猜你可能會想看看array_key_diff()array_diff_assoc()