【问题标题】:Countries Array check for value国家/地区数组检查值
【发布时间】:2014-05-06 11:19:01
【问题描述】:

我正在寻找一种解决方案来检查是否存在国家/地区代码的数组。 而不是张贴全名。

我是 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

【问题讨论】:

    标签: php arrays variables


    【解决方案1】:

    只需使用$country作为key,从$country_en数组中获取你想要的值:

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

    您想在这里使用array_key_exists(),而不是in_array(),因为al 是数组键之一,而不是值。

    【讨论】:

      【解决方案2】:

      试试这个:

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

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

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

      【讨论】:

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

      【讨论】:

        【解决方案4】:

        试试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"
            }
        });
        

        【讨论】:

        • 另一种方法。但我觉得array_walk 在这里有点矫枉过正,因为一个简单的键查找就可以解决这个问题。该函数必须遍历整个数组才能执行您在 callback 中定义的任何操作。
        • @AmalMurali 是的,这是另一种选择,假设 OP 发现它很有趣,只要他需要在整个数组中进行操作
        • 我已经 +1 了你的答案。我已更新您的答案以使用 use 构造(这是访问回调函数范围之外的变量的正确方法)。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多