2012-09-19 45 views
1

我有一個名爲$mark_ary數組,它包含此:的MultiArray解封值需要援助

Array 
(
    [0] => 61 
    [1] => 62 
    [2] => 63 
    [3] => 64 
    [4] => 65 
    [5] => 66 
    [6] => 67 
    [7] => 68 
) 

,並命名爲$special_donors_array另一個變量,它包含此:

Array 
(
    [0] => Array 
     (
      [group_id] => 4 
      [user_id] => 61 
      [group_leader] => 0 
      [user_pending] => 0 
      [username] => tester_8 
      [username_clean] => tester_8 
      [user_email] => [email protected] 
     ) 

    [1] => Array 
     (
      [group_id] => 5 
      [user_id] => 62 
      [group_leader] => 0 
      [user_pending] => 0 
      [username] => tester_9 
      [username_clean] => tester_9 
      [user_email] => [email protected] 
     ) 

) 

我需要從各個每[user_id]值父密鑰(在這種情況下爲[0]和[1]),並將這些數字用於UNSET它們來自$mark_ary數組變量。

後,我達到我想要的,在$mark_ary變量應該是這樣的:

Array 
(
    [2] => 63 
    [3] => 64 
    [4] => 65 
    [5] => 66 
    [6] => 67 
    [7] => 68 
) 

不幸的是,我甚至不能想到了解決辦法,我甚至不能嘗試想是因爲我沒有」不知道如何開始這個。我仍然需要獲得更多的陣列相關知識。

想法?

回答

2
foreach($special_donors_array as $special_donor){ 
       foreach($mark_ary as $k => $mark){ 
        if($mark == $special_donor['user_id']){ 
         unset($mark_ary[$k]); 
        } 
       } 
      } 
+0

比使用額外的'foreach'更好(性能明智)。 –

+0

重讀Dugi的問題。他必須檢查數組值不是關鍵。 – S3Mi

+0

我在哪裏檢查密鑰? –

0
foreach($special_donors_array as $k => $v) { 
if(isset($mark_ary[$k]) && $v['user_id'] === $mark_ary[$k]) 
    unset($mark_ary[$k]); 
} 
+0

你的解決方案是完全錯誤的。重讀問題。 – S3Mi

+0

在什麼意義上? isset保存了一個foreach循環,考慮到$ special_donors_array&$ mark_ary的大小相同。那是我答案中的唯一假設,與urs不同。 –

+0

是的,它保存了foreach循環,但除此之外,它並沒有達到Dugi想要達到的效果。 – S3Mi