2015-04-29 69 views
3

我一直堅持這一小段時間,現在所有我可以在互聯網上找到的是如何刪除重複項。我是PHP新手,非常感謝。PHP:查找多維數組中的重複項並回顯結果

所以我們可以說我有姓氏,地址的多維數組,發生的交通意外及原因事故,像這樣:

array(
    array(
    'Adams','King Street 12','14:25','Heart Attack' 
    ), 
    array(
    'Ellis','Vine Street 4','02:48','Broken Leg' 
    ), 
    array(
    'Adams','Parker Street 43','20:10','Heart Attack' 
    ) 
) 

,我需要找到有同樣的事故發生一次以上的條目,所以這個短陣,輸出應該是這個樣子:

Adams King Street 12 14:25 Heart Attack 
Adams Parker Street 43 20:10 Heart Attack 

我試圖$answer = array_unique(array_diff_assoc($whole_ar, array_unique($whole_ar))); 但這似乎並沒有對多維數組。

+0

它們是相同的,因爲「亞當斯」還是「亞當斯」和「心臟病發作」? – AbraCadaver

+0

亞當斯和心臟病發作 –

回答

3

我想你將不得不做這個步驟,首先你需要php5.5或更高,然後把 array_column()在每個按鍵上的東西,像這樣

$myArray = array(
    array(
    'Adams','King Street 12','14:25','Heart Attack' 
    ), 
    array(
    'Ellis','Vine Street 4','02:48','Broken Leg' 
    ), 
    array(
    'Adams','Parker Street 43','20:10','Heart Attack' 
    ) 
); 

接下來你打電話找到的第一個複本鍵(名字)

$name = array_column($myArray, '0'); 
$address = array_column($myArray, '1'); 
$time = array_column($myArray, '2'); 
$injury = array_column($myArray, '3'); 

接下來我們算OCCURENCES

$count_names = array_count_values($name); 

執行此爲每個標準使用if構建

然後選擇apropriate陣列,

if ($count_names > 0){ 
... 
} 

Finaly選擇使用的結果的apropriate數據行,如果構造

+0

,因爲他將事件開關'$ count_names'切換到'$ count_injury'並將'array_count_values($ name);'轉換爲'array_count_values($傷害)' –

+0

謝謝您沒有正確讀取 – mantis