0

わずかな言語変数を変更するための地理検出をまとめようとしています。

検出は完全に機能していますが、配列チェックが機能していないようです。国のリストからのものかどうかを知る必要があります。国をエコーすると正しい名前が得られるので、その部分が機能していることがわかります。

//Get User Country

$country_arr = array(
    "Canada" => "ca", 
    "United States" => "us", 
    "United Kingdom" => "uk", 
    "Australia" => "au",
    "South Africa" => "za",
    "Unknow" => "shot"
);

$country=visitor_country();

if (in_array($country, $country_arr)) {
    //include ("languages/" . $lang . ".php");
    //echo $country_arr[$country];
    echo "yes
";
} else {
    //include ("languages/en.php");
    echo "no
";
}

echo $country;

関連するすべてのコードが機能し、食べられるサンドボックスを機能させる

また、標準の1次元配列では機能しません

$count_array = array("South Africa", "Unknow");
4

4 に答える 4

1

array_key_exists代わりに配列を使用in_array

//Get User Country

$country = visitor_country();

$country_arr = array(
"Canada" => "ca", 
"United States" => "us", 
"United Kingdom" => "uk", 
"Australia" => "au",
"South Africa" => "za",
"Unknown" => "shot"
);


//$count_array = array("South Africa", "Unknown");

if ( array_key_exists($country, $country_arr) ) {
//include ("languages/" . $lang . ".php");
//echo $country_arr[$country];
echo "yes<br>";
} else {
    //include ("languages/en.php");
    echo "no<br>";
}

echo $country;

in_array 関数の場合、$country_arr配列は次のようになります

/* For IN Array */
$country_arr = array(
    "Canada", 
    "United States", 
    "United Kingdom", 
    "Australia",
    "South Africa",
    "Unknown"
);

戻り値と一致しない$count_array = array("South Africa", "Unknow");ため、機能していません..$countryUnknownUnknow

于 2013-11-01T08:39:00.540 に答える