2012-08-31 69 views
-2

可能重複:
Comparing elements in a multidimensional array從多維數組中取出一個值是否重複

我的陣列看起來像

Array 
(
    [0] => Array 
     (
      [event_key] => 1 
      [event_id] => 5 
      [event_desc] => Test Event 1 
     ) 

    [1] => Array 
     (
      [event_key] => 2 
      [event_id] => 2 
      [event_desc] => Test Event 2 
     ) 

    [2] => Array 
     (
      [event_key] => 3 
      [event_id] => 5 
      [event_desc] => Test Event 3 
     ) 

    [3] => Array 
     (
      [event_key] => 4 
      [event_id] => 4 
      [event_desc] => Test Event 4 

     ) 

    [4] => Array 
     (
      [event_key] => 5 
      [event_id] => 5 
      [event_desc] => Test Event 5 

     ) 

) 

我想刪除一個子數組,如果事項標識重複

所以期望的結果是

Array 
(
    [0] => Array 
     (
      [event_key] => 1 
      [event_id] => 5 
      [event_desc] => Test Event 1 
     ) 

    [1] => Array 
     (
      [event_key] => 2 
      [event_id] => 2 
      [event_desc] => Test Event 2 
     ) 

    [2] => Array 
     (
      [event_key] => 4 
      [event_id] => 4 
      [event_desc] => Test Event 4 

     ) 


) 
+2

你有什麼到目前爲止已經試過? – diEcho

+1

啊,有這麼多重複的!一行提示答案:'foreach($ array as $ val){$ deDuplicated [$ val ['event_id']] = $ val; }'。瞧! – deceze

+0

它很簡單,但你的PHP處理數組應該清楚 –

回答

1

像這樣的東西應該做的伎倆:

$knownIds = array(); 
foreach($myArray AS $key=>$item) { 
    if(array_key_exists($item['event_id'], $knownIds) === true) { 
    unset($myArray[$key]); 
    } else { 
    $knownIds[$item['event_id']] = $key; // value does not matter really here 
    } 
} 
$myArray = array_values($myArray); 

其中$myArray是你的源陣列。

+0

但是未設置不重置陣列 – Champ

+0

真實的指數,它是方法只是例子。編輯 –

+0

謝謝array_values()做了其餘的任務;) – Champ