如果国家/地区不在数组中,我如何 select 第一个数组?
How can I select first array if country not in array?
我正在使用 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",
),
);
?>
我如何检查用户所在的国家/地区是否在数组中,如果没有则将 'GB' 设置为默认值?
我正在使用它来检查国家:
$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()) ) ) );
首先检查国家代码是否在$content
数组中作为键,如果不在第一个数组中作为默认值。要检查键是否存在于数组中,请使用 array_key_exists().
像这样,
$countrycode="IN";
if(!array_key_exists($countrycode,$content)) {
$countryarray=$content[0];
} else {
$countryarray=$content[$countrycode];
}
以上代码将 return 国家/地区的内容(如果可用)或第一个(如果未在数组中找到)。
你也可以用ternary operator
查看
countryArr = array();
$countryArr = array_key_exists($code,$content) ? $content[$code] : $content['GB'];
首先:我为默认国家代码添加了一个新变量.. ($defaultCountry = 'GB');
第二:尝试从 (get, session, cookie,
geoip_country_code_by_name 或分配的默认值)。
最后:检查 $content array() 中是否存在国家代码,否则 return 默认国家..
$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 ..
}
我正在使用 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",
),
);
?>
我如何检查用户所在的国家/地区是否在数组中,如果没有则将 'GB' 设置为默认值?
我正在使用它来检查国家:
$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()) ) ) );
首先检查国家代码是否在$content
数组中作为键,如果不在第一个数组中作为默认值。要检查键是否存在于数组中,请使用 array_key_exists().
像这样,
$countrycode="IN";
if(!array_key_exists($countrycode,$content)) {
$countryarray=$content[0];
} else {
$countryarray=$content[$countrycode];
}
以上代码将 return 国家/地区的内容(如果可用)或第一个(如果未在数组中找到)。
你也可以用ternary operator
查看
countryArr = array();
$countryArr = array_key_exists($code,$content) ? $content[$code] : $content['GB'];
首先:我为默认国家代码添加了一个新变量.. ($defaultCountry = 'GB');
第二:尝试从 (get, session, cookie,
geoip_country_code_by_name 或分配的默认值)。
最后:检查 $content array() 中是否存在国家代码,否则 return 默认国家..
$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 ..
}