Php 将数组中的国家名称替换为另一个数组中的代码

Php 将数组中的国家名称替换为另一个数组中的代码,php,Php,我有一个DINAMICAL构建的数组,其中包含一些国家的名称: $countries=array('Czech Republic','France','Moldova','Romania','Serbia','Ukraine'); 我想用第二个数组中的国家/地区代码替换这些国家/地区名称: $countryList = array( 'AT' => 'Austria', 'BE' => 'Belgium', 'BG' => 'Bulgaria', 'HR' => 'Cr

我有一个DINAMICAL构建的数组,其中包含一些国家的名称:

$countries=array('Czech Republic','France','Moldova','Romania','Serbia','Ukraine');
我想用第二个数组中的国家/地区代码替换这些国家/地区名称:

$countryList = array(
'AT' => 'Austria',
'BE' => 'Belgium',
'BG' => 'Bulgaria',
'HR' => 'Croatia',
'CY' => 'Cyprus',
'CZ' => 'Czech Republic',
'DK' => 'Denmark',
'EE' => 'Estonia',
'FI' => 'Finland',
'FR' => 'France',
'DE' => 'Germany',
'GR' => 'Greece',   
'HU' => 'Hungary',
'IE' => 'Ireland',
'IT' => 'Italy',
'LV' => 'Latvia',
'LT' => 'Lithuania',
'LU' => 'Luxembourg',
'MT' => 'Malta',
'MD' => 'Moldova',
'NL' => 'Netherlands',
'PL' => 'Poland',
'PT' => 'Portugal',
'RO' => 'Romania',
'RS' => 'Serbia',
'SK' => 'Slovakia',
'SI' => 'Slovenia',
'ES' => 'Spain',
'SE' => 'Sweden',
'UA' => 'Ukraine',
'GB' => 'United Kingdom'
);
如何做到这一点

更新


已将塞尔维亚添加到阵列。

您可以执行以下操作:

for($i=0;$i<count($countries);$i++) {
    foreach($countryList as $key=>$val) {
        if($countries[$i]==$val) {
            $countries[$i]=$key;
        }
    }
}

print_r($countries);
($i=0;$i$val)的
{
如果($countries[$i]==$val){
$countries[$i]=$key;
}
}
}
印刷(国家);

请注意,塞尔维亚代码不在第二个数组中,因此全名保留。

有一个用于在数组中切换键和值的功能:

$codeList=array_flip($countryList);
因此,要想做你想做的事情,请执行下一步:

$codeList=array_flip($countryList);
foreach ($countries as $key => $country) {
    $countries [$key] = $codeList [$country];
}

PHP的
array\u search
方法可用于根据值查找数组键。您可以将其用作传递给
array\u map
的函数的基础,以将所有名称转换为各自的代码:

$countries = array_map(function ($element) use ($countryList) {
  return array_search($element, $countryList);
}, $countries);


请注意,塞尔维亚不在您的代码列表中,因此将被转换为布尔值false。

然后呢?抱歉,但对于您的代码,我只得到以下信息:
c,c,c,c
@Iurie:I更正了最后一行的一个tipo:
code列表[$country]
必须是
$code列表[$country]
(缺少
$
)。现在它起作用了。谁敢否决一个有三个人给出答案的问题?我很感激所有的答案,但我只需要选择一个。非常感谢你!