use*_*391 3 php if-statement echo simplify
我在选择菜单中有完整的时区列表,如下所示:
<option value="Pacific/Kosrae"> Pacific/Kosrae( +11:00 GMT ) </option>
<option value="Pacific/Kwajalein"> Pacific/Kwajalein( +12:00 GMT ) </option>
<option value="Pacific/Majuro"> Pacific/Majuro( +12:00 GMT ) </option>
<option value="Pacific/Marquesas"> Pacific/Marquesas( -09:30 GMT ) </option>
<option value="Pacific/Midway"> Pacific/Midway( -11:00 GMT ) </option>
Run Code Online (Sandbox Code Playgroud)
这个清单永远存在.
我想将每个选项更改为以下格式:
if($_SESSION['timezone'] == 'Africa/Abidjan') {
echo '<option selected="selected" value="Africa/Abidjan"> Africa/Abidjan( +00:00 GMT ) </option>';
} else {
echo '<option value="Africa/Abidjan"> Africa/Abidjan( +00:00 GMT ) </option>';
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用php来避免复制粘贴并手动编辑每个选项?
将数据存储在某些数据结构中,并使用循环.例如,使用从时区名称到偏移的地图:
$timezones = array(
'Pacific/Kosrae' => '+11:00',
'Pacific/Kwajalein' => '+12:00',
...
);
foreach($timezones as $name => $offset) {
echo "<option value=\"$name\"" . ($name == $_SESSION['timezone'] ? " selected" : "") . ">$name( $offset GMT ) </option>\n";
}
Run Code Online (Sandbox Code Playgroud)