已知键时从关联数组返回键的值

问题描述 投票:0回答:1

因此,如果键存在于数组中,我将尝试回显键的值。我现在正在执行以下代码:

<?php
    $lingos = array(
        "en"=>"en_US", 
        "en-gb"=>"en_GB", 
        "nl"=>"nl_NL", 
        "de"=>"de",
        "da"=>"da",
        "es"=>"es",
        "ca"=>"es_MX",
        "fr"=>"fr",
        "it"=>"it",
        "pt-pt"=>"pt_PT",
        "no"=>"no",
        "sv"=>"sv",
        "fi"=>"fi",
        "et"=>"en_GB",
        "is"=>"en_GB",
        "cs"=>"cs",
        "pl"=>"pl",
        "lv"=>"en_GB",
        "lt"=>"lt",
        "hu"=>"hu",
        "ro"=>"ro",
        "sr"=>"en_GB",
        "hr"=>"en_GB",
        "bg"=>"bg",
        "el"=>"el",
        "uk"=>"en_GB",
        "ru"=>"ru",
        "tr"=>"tr",
        "ar"=>"ar",
        "zh-hans"=>"zh_CN",
        "zh-hant"=>"zh_TW",
        "ja"=>"ja",
        "ko"=>"ko",
        "id"=>"in",
        "ms"=>"ms",
        "th"=>"th",
        "vi"=>"vi",
        "pt-br"=>"pt_PT"
    );

    // foreach($lingos as $lingo => $x_lingo) {
    //     echo "Key=" . $lingo . ", Value=" . $x_lingo;
    //     echo "<br>";
    // }


    $wmpl_langcode = ICL_LANGUAGE_CODE;
    echo $wmpl_langcode;
    if (array_key_exists($wmpl_langcode, $lingos)) {
        echo $lingos[1];
    } else {
        echo "not found";
    }
?>

事实是,$ lingos [1]没有返回任何东西。我在做什么错?

php wpml
1个回答
1
投票

大概是$wmpl_langcode类似于en,因为您正在使用array_key_exists检查它,因此将其用作索引:

$wmpl_langcode = ICL_LANGUAGE_CODE;
echo $wmpl_langcode;
if (array_key_exists($wmpl_langcode, $lingos)) {
    echo $lingos[$wmpl_langcode];
} else {
    echo "not found";
}

或更简单:

echo isset($lingos[$wmpl_langcode]) ? $lingos[$wmpl_langcode] : "not found";

//PHP 7+
echo $lingos[$wmpl_langcode] ?? "not found";
© www.soinside.com 2019 - 2024. All rights reserved.