0

我试图弄清楚如何在我的数组中使用三元运算符。我希望能够检查值是否匹配,然后选择该选项"selected"

这是我的代码:

<select id="time_out_1" name="data[<?= $id;?>][time_out]">

<?php

$miltimes = array("<option value=\"0000\">0000</option>","<option value=\"0030\">0030</option>",   "<option value=\"0100\">0100</option>",   "<option value=\"0130\">0130</option>",   "<option value=\"0200\">0200</option>",   "<option value=\"0230\">0230</option>",   
"<option value=\"0300\">0300</option>",   "<option value=\"0330\">0330</option>",   "<option value=\"0400\">0400</option>",  "<option value=\"0430\">0430</option>",   "<option value=\"0500\">0500</option>",   "<option value=\"0530\">0530</option>",   "<option value=\"0600\">0600</option>",   "<option value=\"0630\">0630</option>",   "<option value=\"0700\">0700</option>",   "<option value=\"0730\">0730</option>",   "<option value=\"0800\">0800</option>",   "<option value=\"0830\">0830</option>",   "<option value=\"0900\">0900</option>",   "<option value=\"0930\">0930</option>",   "<option value=\"1000\">1000</option>",   "<option value=\"1030\">1030</option>",   
"<option value=\"1100\">1100</option>",   "<option value=\"1130\">1130</option>",   "<option value=\"1200\">1200</option>",   "<option value=\"1230\">1230</option>",   "<option value=\"1300\">1300</option>",   "<option value=\"1330\">1330</option>",   "<option value=\"1400\">1400</option>",   "<option value=\"1430\">1430</option>",   "<option value=\"1500\">1500</option>",   "<option value=\"1530\">1530</option>",   "<option value=\"1600\">1600</option>",   "<option value=\"1630\">1630</option>",   "<option value=\"1700\">1700</option>",   "<option value=\"1730\">1730</option>",   "<option value=\"1800\">1800</option>",   "<option value=\"1830\">1830</option>",   "<option value=\"1900\">1900</option>",   "<option value=\"1930\">1930</option>",   "<option value=\"2000\">2000</option>", "<option value=\"2030\">2030</option>",      "<option value=\"2100\">2100</option>",      "<option value=\"2130\">2130</option>",      "<option value=\"2200\">2200</option>",      "<option value=\"2230\">2230</option>",      "<option value=\"2300\">2300</option>",      "<option value=\"2330\">2330</option>");

foreach($miltimes as $miltime) { echo $miltime; } 
echo '</select>';?>

我找到了这个答案,但我不太确定如何在我的情况下使用它。

在数组中使用 If-else

在此先感谢您的帮助。

4

2 回答 2

1

无需将所有选项标签放入数组中,您只需放入数字并使用 PHP 为您创建标签:

$miltimes = array('0000', '0030', '0100', '0130', '0200', '0230', '0300', '0330', '0400', '0430', '0500', '0530', '0600', '0630', '0700', '0730', '0800', '0830', '0900', '0930', '1000', '1030', '1100', '1130', '1200', '1230', '1300', '1330', '1400', '1430', '1500', '1530', '1600', '1630', '1700', '1730', '1800', '1830', '1900', '1930', '2000', '2030', '2100', '2130', '2200', '2230', '2300', '2330');
$select = '<select id="time_out_1" name="'.$data[$id]['time_out']."\">\n";
foreach ($miltimes as $key => $value){
    $selected = ($value == '0030') ? ' selected' : '';
    $select .= "\t<option value=\"$value\"$selected>$value</option>\n";
}
$select .= "</select>\n";
echo $select;
于 2013-08-16T10:46:17.390 回答
0

如果您尝试根据这些值设置时间并且您的时间值是字符串,那么

$matchtime = "1000";
$默认时间 = "0500"

foreach($miltimes 作为 $miltime) {
    $timematched = ($miltime == $matchtime) ?$miltime : $默认时间;
    回声$时间匹配;
}

虽然最好在数组中只包含时间值并在比较时间时使用strtotime等内置函数。这样你就不会进行字符串比较。

于 2013-08-15T22:51:30.377 回答