簡體   English   中英

通過比較另一個數組的鍵從一個數組中刪除數組值

[英]Removing Array Values From One Array By Comparing Keys Of Another Array

假設我有第一個數組$ aAllCities作為

Array
(
   [21] => London
   [9]  => Paris
   [17] => New York
   [3]  => Tokyo
   [25] => Shanghai
   [11] => Dubai
   [37] => Mumbai
)

另一個數組$ aNotSupportedCities為

Array
(
   [0] => 37
   [1] => 25
   [2] => 11
)

是否有可能得到這樣的數組?

Array
(
   [21] => London
   [9]  => Paris
   [17] => New York
   [3]  => Tokyo
)

我想刪除其他數組中存在的那些鍵的數組值

foreach($aAllCities as $key => $value) {
    if(in_array($key,$aNotSupportedCities)) {
        unset($aAllCities[$key]); 
    }

}

嘗試這個:

$aAllCities = array_flip( $aAllCities );
$aAllCities = array_diff( $aAllCities, $aNotSupportedCities );
$aAllCities = array_flip( $aAllCities );

希望這可以幫助。

其他答案是正確的,但是更流暢,更快捷的方法是:
$supportedCities = array_diff_key($aAllCities, $aNotSupportedCities);

這將從$aAllCities返回所有在$aAllCities中沒有鍵的$aNotSupportedCities

注意,這通過它們的鍵比較兩個數組,因此您需要使$aNotSupportedCities看起來像這樣:

Array
(
   [37] => something
   [25] => doesn't really matter
   [11] => It's not reading this
)

祝你好運。

$new = $aAllCities;
foreach($aNotSupportedCities as $id) {
  if (isset($new[$id]) {
    unset($new[$id]);
  }
}
$supportedCities = array_diff_key($aAllCities, array_values($aNotSupportedCities));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM