我有一个数组:
$countryList = array(
"GB" => "United Kingdom",
"US" => "United States",
"AF" => "Afghanistan",
"AL" => "Albania",
"DZ" => "Algeria"
);
它继续......
当我获得一个国家/地区时,它会出现,例如美国,但我需要将该值(值)与密钥相匹配,在本例中为“US”。我该怎么做?我看到的所有示例都与使用密钥获取值时需要使用该值来获取密钥。最佳输出将只是“美国”,而不是阵列中的输出。
我已经尝试了echo array_keys('United States', $countryList);
,但它希望第一个参数位于数组中,并且它只是以美国形式出现,如果可能的话,我宁愿不将其更改为数组。
答案 0 :(得分:5)
您可以使用array_search
功能:
$key = array_search("United States", $countryList); // $key = 'US';
答案 1 :(得分:3)
array_search
会为您提供映射到提供值的密钥。
$countryCode = array_search('United States', $countryList);
如果您需要多次执行此操作,可以使用array_flip
将键与值交换。这将提供更快的查找速度和一次性翻转成本。
$countriesByName = array_flip($countryList);
$countryCode = $countriesByName['United States'];
答案 2 :(得分:3)
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>
答案 3 :(得分:1)
试试这个:array_keys($countryList, "United States");