数组回声区域设置的问题



我正试图在foreach中回显数组的结果以进行定位,但遇到了数组问题。

<select name="locale">
<?php
foreach ($locales at $location => $lo) {
echo '<option value="' . $lo[0] . '">' . $lo[1] . '</option>';
}
?>
</select> 

数组如下所示;

$locales = array(
'aa_DJ' => 'Afar (Djibouti)',
'aa_ER' => 'Afar (Eritrea)',
'aa_ET' => 'Afar (Ethiopia)',
'af_ZA' => 'Afrikaans (South Africa)',
'sq_AL' => 'Albanian (Albania)',
'sq_MK' => 'Albanian (Macedonia)',
'am_ET' => 'Amharic (Ethiopia)',
'ar_DZ' => 'Arabic (Algeria)',
'ar_BH' => 'Arabic (Bahrain)',
'ar_EG' => 'Arabic (Egypt)',
'ar_IN' => 'Arabic (India)',
'ar_IQ' => 'Arabic (Iraq)',
'ar_JO' => 'Arabic (Jordan)',
'ar_KW' => 'Arabic (Kuwait)',
'ar_LB' => 'Arabic (Lebanon)',
'ar_LY' => 'Arabic (Libya)',
'ar_MA' => 'Arabic (Morocco)',
'ar_OM' => 'Arabic (Oman)',
'ar_QA' => 'Arabic (Qatar)',
'ar_SA' => 'Arabic (Saudi Arabia)',
'ar_SD' => 'Arabic (Sudan)',
'ar_SY' => 'Arabic (Syria)',
'ar_TN' => 'Arabic (Tunisia)',
'ar_AE' => 'Arabic (United Arab Emirates)',
'ar_YE' => 'Arabic (Yemen)',
'an_ES' => 'Aragonese (Spain)',
'hy_AM' => 'Armenian (Armenia)',
'as_IN' => 'Assamese (India)',
'ast_ES' => 'Asturian (Spain)',
'az_AZ' => 'Azerbaijani (Azerbaijan)',
'az_TR' => 'Azerbaijani (Turkey)',
'eu_FR' => 'Basque (France)',
'eu_ES' => 'Basque (Spain)',
'be_BY' => 'Belarusian (Belarus)',
'bem_ZM' => 'Bemba (Zambia)',
'bn_BD' => 'Bengali (Bangladesh)',
'bn_IN' => 'Bengali (India)',
'ber_DZ' => 'Berber (Algeria)',
'ber_MA' => 'Berber (Morocco)',
'byn_ER' => 'Blin (Eritrea)',
'bs_BA' => 'Bosnian (Bosnia and Herzegovina)',
'br_FR' => 'Breton (France)',
'bg_BG' => 'Bulgarian (Bulgaria)',
'my_MM' => 'Burmese (Myanmar [Burma])',
'ca_AD' => 'Catalan (Andorra)',
'ca_FR' => 'Catalan (France)',
'ca_IT' => 'Catalan (Italy)',
'ca_ES' => 'Catalan (Spain)',
'zh_CN' => 'Chinese (China)',
'zh_HK' => 'Chinese (Hong Kong SAR China)',
'zh_SG' => 'Chinese (Singapore)',
'zh_TW' => 'Chinese (Taiwan)',
'cv_RU' => 'Chuvash (Russia)',
'kw_GB' => 'Cornish (United Kingdom)',
'crh_UA' => 'Crimean Turkish (Ukraine)',
'hr_HR' => 'Croatian (Croatia)',
'cs_CZ' => 'Czech (Czech Republic)',
'da_DK' => 'Danish (Denmark)',
'dv_MV' => 'Divehi (Maldives)',
'nl_AW' => 'Dutch (Aruba)',
'nl_BE' => 'Dutch (Belgium)',
'nl_NL' => 'Dutch (Netherlands)',
'dz_BT' => 'Dzongkha (Bhutan)',
'en_AG' => 'English (Antigua and Barbuda)',
'en_AU' => 'English (Australia)',
'en_BW' => 'English (Botswana)',
'en_CA' => 'English (Canada)',
'en_DK' => 'English (Denmark)',
'en_HK' => 'English (Hong Kong SAR China)',
'en_IN' => 'English (India)',
'en_IE' => 'English (Ireland)',
'en_NZ' => 'English (New Zealand)',
'en_NG' => 'English (Nigeria)',
'en_PH' => 'English (Philippines)',
'en_SG' => 'English (Singapore)',
'en_ZA' => 'English (South Africa)',
'en_GB' => 'English (United Kingdom)',
'en_US' => 'English (United States)',
'en_ZM' => 'English (Zambia)',
'en_ZW' => 'English (Zimbabwe)',
'eo' => 'Esperanto',
'et_EE' => 'Estonian (Estonia)',
'fo_FO' => 'Faroese (Faroe Islands)',
'fil_PH' => 'Filipino (Philippines)',
...

我正在尝试将位置代码输入到值中,并在显示的选项中获取易于读取的位置。只是运气不太好。

非常感谢:-(

$lo不是一个数组,它是一个类似于'Afar (Djibouti)'的字符串。$lo[0]是第一个字符,$lo[1]是第二个字符。

您希望在选项中使用$location$lo。当您写入foreach ($locales as $location => $lo)时,数组键进入$location,相应的值进入$lo

还有一个拼写错误:at应该是as

foreach ($locales as $location => $lo) {
echo '<option value="' . $location . '">' . $lo . '</option>';
}

$lo[0]不包含区域设置。它被存储在$lo中,并且根据foreach循环的定义,该位置已经在$location中。

<select name="locale">
<?php
foreach ($locales at $lo => $location) {
echo '<option value="' . $lo . '">' . $location . '</option>';
}
?>
</select> 

最新更新