2015-02-06 38 views
-1

我有兩個數組,需要遍歷第一個元素,並在第二個元素中移除與第一個數組中的值匹配的鍵。基於鍵刪除數組元素而不使用未設置

$array1 = array(23456,98765); 
$array2 = array(12345 => "Andrew", 23456 => "Bobby", 98765 => "Charles"); 

foreach ($array1 as $key) { 
    unset($array2[$key]); 
} 

但是,我不能使用「unset」,因爲「unset不能以完全類型安全的方式使用」。我能做到這一點的另一種方式是什麼?

+2

你是什麼意思的「unset不能用於完全類型安全的方式」?這個問題是唯一的谷歌結果的準確報價。 – 2015-02-06 22:14:00

+0

這是我在工作時得到的一個警告。解決方案如下。 – Andy 2015-02-10 22:04:48

回答

0

這是一張地圖,所以使用removeKey();

foreach ($array1 as $key) { 
    $array2->removeKey($key); 
} 
0

如何刪除沒有unset()的數組元素?你只能創建一個新的數組是這樣的:

$array1 = array(23456,98765); 
$array2 = array(12345 => "Andrew", 23456 => "Bobby", 98765 => "Charles"); 

$result = array_flip(array_diff(array_flip($array2), $array1)); 
print_r($result); 

輸出:

Array ([12345] => Andrew) 
+0

你也可以在這個過程中對陣列進行重複數據刪除......也許不是一個好主意。 – deceze 2015-02-07 00:50:18