![](/img/trans.png)
[英]Matching keys from one array to another and creating a new array with their values?
[英]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.