简化多个回声 [英] Simplifying multiple echos

查看:141
本文介绍了简化多个回声的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在选择菜单中有完整的时区列表,如下所示:

I have a full list of timezones in a select menu like so:

<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>

该列表将永久存在。

我想将每个选项更改为以下格式:

I want to change each of the options into this format:

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>';
}

如何使用php避免复制粘贴和编辑每个手动选项??

How can I use php to avoid having to copy paste and edit each of the options manually??

推荐答案

将数据存储在某些数据结构中,并使用循环。例如,使用从时区名称到抵消的地图:

Store the data in some data structure, and use a loop. For example, using a map from timezone name to offset:

$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";
}

这篇关于简化多个回声的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆