我想使用php数组进行HTML选择列表.在这种情况下,它将是国家列表,但在下拉列表中列出的国家名称旁边,我需要作为每个国家/地区短国家/地区代码的值.
我目前使用的php数组如下:
$wcr=array(
'Angola',
'Antigua & Barbuda',
'Armenia',
'Austria',
'Azerbaijan',
.....
);
Run Code Online (Sandbox Code Playgroud)
使用此数组的PHP页面:
<select name="country"><option selected value=""> ---------
<? $p=1;asort($wcr);reset($wcr);
while (list ($p, $val) = each ($wcr)) {
echo '<option value="'.$p.'">'.$val;
} ?>
</select>
Run Code Online (Sandbox Code Playgroud)
该值应该是短国家/地区代码(类似'ES','美国','AN',...)而不是我现在拥有的数字作为此表单中的值.如果有可能的话,我会在同一个PHP数组中写一些简短的国家代码.
我怎样才能做到这一点?
Chr*_*phe 29
使用foreach(),它是遍历数组的最佳函数
你的数组应该看起来像jakenoble
<select name="country">
<option value="">-----------------</option>
<?php
foreach($wcr as $key => $value):
echo '<option value="'.$key.'">'.$value.'</option>'; //close your tags!!
endforeach;
?>
</select>
Run Code Online (Sandbox Code Playgroud)
我还对你的HTML代码做了一些小调整.默认情况下将选择列表中的第一个选项,因此无需指定它;)
编辑:我再次阅读你的问题后做了一些修改
首先制作一个相关的国家代码数组,如下所示:
$countries = array(
'gb' => 'Great Britain',
'us' => 'United States',
...);
Run Code Online (Sandbox Code Playgroud)
然后这样做:
$options = '';
foreach($countries as $code => $name) {
$options .= "<option value=\"$code\">$name</option>\n";
}
$select = "<select name=\"country\">\n$options\n</select>";
Run Code Online (Sandbox Code Playgroud)