我有一個數組:刪除基於陣列元素鍵
array(
'1' => red,
'2' => green,
'3' => blue,
'4' => orange
);
而第二陣列:
array(
'0' => 1,
'1' => 4
);
我想保持只在陣列1具有等於一個密鑰值的那些元素在陣列值2
所以最後陣列應該是這樣的:
array (
'1' => red,
'4' => orange
);
我有一個數組:刪除基於陣列元素鍵
array(
'1' => red,
'2' => green,
'3' => blue,
'4' => orange
);
而第二陣列:
array(
'0' => 1,
'1' => 4
);
我想保持只在陣列1具有等於一個密鑰值的那些元素在陣列值2
所以最後陣列應該是這樣的:
array (
'1' => red,
'4' => orange
);
使用array_intersect_key
可獲取共享密鑰的值(在第二個陣列上使用array_flip
後)。
$array3 = array_intersect_key($array1, array_flip($array2));
這不會保留$ array1中的值。結果是Array([1] => 0 [4] => 1)'。 – 2012-03-05 21:50:25
@GeorgeCummins:我修好了。我有參數相反。它現在正常工作:-) – 2012-03-05 21:51:09
看起來不錯。謝謝。 – 2012-03-05 21:51:55
使用array_intersect_key與array_flip,
$r = array_intersect_key($a, array_flip($b));
你嘗試過什麼?我們很樂意幫助您解決現有代碼中的問題,但我們不會(在大多數情況下)爲您編寫代碼。 – 2012-03-05 21:46:52