如果国家不在数组中,如何选择第一个数组?

时间:2016-10-03 09:20:53

标签: php html arrays geoip

我正在使用php geoip_country_code_by_name函数从一个如下所示的数组中为不同国家/地区提供不同的内容:

<?php

    $content = array(
        'GB' => array(
            'meta_description'  => "Description is here",
            'social_title'      => "Title here",
            'country_content_js'   => "js/index.js",
        ),
        'BR' => array(
            'meta_description'  => "Different Description is here",
            'social_title'      => "Another Title here",
            'country_content_js'   => "js/index-2.js",
        ),
    );

?>

如何检查用户所在的国家/地区是否在数组中,如果没有设置&#39; GB&#39;作为默认值?

我用它来检查国家:

$country = ( isset($_GET['country']) && !empty($_GET['country']) ? $_GET['country'] : ( isset($_SESSION['country']) && !empty($_SESSION['country']) ? $_SESSION['country'] : ( isset($_COOKIE['country']) && !empty($_COOKIE['country']) ? $_COOKIE['country'] : geoip_country_code_by_name(ip()) ) ) );

3 个答案:

答案 0 :(得分:1)

首先检查国家/地区代码是否在$content数组中作为键,如果不作为默认值提供给第一个数组。要检查密钥是否存在于数组中,请使用 array_key_exists()

像这样,

$countrycode="IN";
if(!array_key_exists($countrycode,$content)) {
   $countryarray=$content[0];
} else {
   $countryarray=$content[$countrycode];
}

如果可用,上面的代码将返回国家/地区的内容,如果在数组中找不到,则返回第一个。

答案 1 :(得分:0)

您可以使用ternary operator

进行检查
countryArr  = array();
$countryArr = array_key_exists($code,$content) ? $content[$code] : $content['GB'];

答案 2 :(得分:0)

首先:我为默认国家/地区代码添加了一个新变量..($ defaultCountry =&#39; GB&#39;);

第二:尝试从(get,session,cookie,
获取国家/地区代码) geoip_country_code_by_name或默认为已分配)。

最后:检查$ content array()中是否存在国家/地区代码,否则返回默认国家/地区..

 $defaultCountry = 'GB';
if(isset($_GET['country']) && !empty($_GET['country'])){
    $country =$_GET['country'];
}elseif(isset($_SESSION['country']) && !empty($_SESSION['country'])){
    $country =$_SESSION['country'];
}elseif(isset($_COOKIE['country']) && !empty($_COOKIE['country'])){
    $country =$_COOKIE['country'];
}elseif($value = geoip_country_code_by_name(ip())){
    $country = $value;
}else{
    $country = $defaultCountry;
}

if(isset($content[$country])){
    $country =$content[$country];
}else{
    $country = $content[$defaultCountry];//Default ..
}