国家数组检查值

时间:2014-03-27 12:58:22

标签: php arrays variables

如果国家/地区代码存在,我正在寻找检查数组的解决方案。 而不是张贴整个名字。

我是PHP的新手,所以如果in_array是正确的方式,我就不会感到害羞:)

php代码

$country = "al"

<?php if (in_array("$country", $countries_en)) {
        echo "$country"; }
    ?>

所以我想要的回声不是“al”。我想要“阿尔巴尼亚”。

数组:

$countries_en = array
(
    'ad' => 'Andorra',
    'ae' => 'United Arab Emirates',
    'af' => 'Afghanistan',
    'ag' => 'Antigua and Barbuda',
    'ai' => 'Anguilla',
    'al' => 'Albania',
    'am' => 'Armenia,..... and much more

4 个答案:

答案 0 :(得分:3)

只需使用$country作为密钥即可从$country_en数组中获取所需的值:

$country = "al";

if (array_key_exists($country, $countries_en)) {
    echo $country_en[$country]; 
}

您希望在此使用array_key_exists(),而不是in_array()因为al是数组键之一,而不是值。

答案 1 :(得分:2)

试试这个:

这里“al”用作数组的键,而不是值, in_array()函数检查值。

所以,你需要在这里使用另一个函数 array_key_exists()

<?php if (array_key_exists($country, $countries_en)) {
    echo $country_en[$country]; }
?>

答案 2 :(得分:1)

As a solution to your problem please try executing following code snippet
  <?php 
   $country='al';
   if(isset($countries_en[$country]))
   { 
         echo $countries_en[$country];
   }
?>

答案 3 :(得分:1)

尝试array_walk功能:

$country = 'ai';

$countries_en = array(
    'ad' => 'Andorra',
    'ae' => 'United Arab Emirates',
    'af' => 'Afghanistan',
    'ag' => 'Antigua and Barbuda',
    'ai' => 'Anguilla'
);

array_walk($countries_en, function($value,$key) use ($country) {
    if ($country === $key) {
        echo $value; // result "Anguilla"
    }
});