2012-03-05 142 views
1

我有一個數組:刪除基於陣列元素鍵

array(
    '1' => red, 
    '2' => green, 
    '3' => blue, 
    '4' => orange 
); 

而第二陣列:

array(
    '0' => 1, 
    '1' => 4 
); 

我想保持只在陣列1具有等於一個密鑰值的那些元素在陣列值2

所以最後陣列應該是這樣的:

array (
    '1' => red, 
    '4' => orange 
); 
+2

你嘗試過什麼?我們很樂意幫助您解決現有代碼中的問題,但我們不會(在大多數情況下)爲您編寫代碼。 – 2012-03-05 21:46:52

回答

3

使用array_intersect_key可獲取共享密鑰的值(在第二個陣列上使用array_flip後)。

$array3 = array_intersect_key($array1, array_flip($array2)); 
+0

這不會保留$ array1中的值。結果是Array([1] => 0 [4] => 1)'。 – 2012-03-05 21:50:25

+0

@GeorgeCummins:我修好了。我有參數相反。它現在正常工作:-) – 2012-03-05 21:51:09

+0

看起來不錯。謝謝。 – 2012-03-05 21:51:55

1

使用array_intersect_key與array_flip,

$r = array_intersect_key($a, array_flip($b));