2010-10-11 57 views
0

我試圖讓兩個陣列之間的區別兩個陣列之間的真正區別,但array_diffarray_diff_assoc,或array_diff_key我不能得到我想要的東西..獲取在PHP

Array 1 : 
    0 => 424012, 
    1 => 423000, 
    2 => 425010, 
    3 => 431447, 
    4 => 421001, 
    5 => 421002, 

Array 2 : 
    0 => 424012, 
    1 => 423000, 
    2 => 425010, 
    3 => 431447, 
    4 => 431447, 
    5 => 421001, 
    6 => 421002, 

array_diff = array() 
// empty 

jarray_diff_assoc = array ( 
    4 => 431447, 
    5 => 421001, 
    6 => 421002, 
) 
// OK but too much :) 

array_diff_key = array(
6 => 421002 
) 
// nope i don't want that :(

我想要431447,導致它在第一個數組中只有一次,在第二個數組中只有兩次。

Regards,Tony

回答

2

這正是你想要的嗎?只有那些在第一次發生一次,在第二次發生兩次的發生?

你基本上可以編寫自己的函數。搜索第二個數組,獲取發生兩次(或不止一次,取決於實際需要的值)的值的列表,然後在第一個數組中搜索這些值(這可以使用內置函數在PHP函數array_intersect中)。

+0

的確,您需要手動完成。計算兩個陣列中的元素,然後進行比較。 – 2010-10-11 10:45:15

+0

是的,我知道我可以做到這一點,但認真的事情已經不存在了嗎? – 2010-10-11 10:47:12

+0

你真的想要函數返回什麼? – PawelMysior 2010-10-11 10:48:05