Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在数组中使用三元运算符?_Php_Arrays_Ternary Operator - Fatal编程技术网

Php 如何在数组中使用三元运算符?

Php 如何在数组中使用三元运算符?,php,arrays,ternary-operator,Php,Arrays,Ternary Operator,我想知道如何在数组中使用三元运算符。我希望能够检查值是否匹配,然后选择该选项 这是我的密码: <select id="time_out_1" name="data[<?= $id;?>][time_out]"> <?php $miltimes = array("<option value=\"0000\">0000</option>","<option value=\"0030\">0030</option>",

我想知道如何在数组中使用三元运算符。我希望能够检查值是否匹配,然后选择该选项

这是我的密码:

<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>';?>
我找到了这个答案,但我不太确定如何在我的情况下使用它


提前感谢您的帮助。

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

$matchtime = "1000"; $defaulttime = "0500" foreach($miltimes as $miltime) { $timematched = ($miltime == $matchtime) ? $miltime : $defaulttime; echo $timematched; }
虽然数组中最好只有时间值,并使用内置函数,如比较时间。这样,您就不会进行字符串比较。

不用将所有选项标记放入数组中,您只需输入数字,然后使用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;

您应该在循环中而不是在数组声明中实现这一点。也可以使用id列表,而不是HTML输出集合。是的,我尝试使用foreach循环来回显军事时间,并为每个时间添加30分钟,但我无法让PHP识别0000作为起始引用,2330作为结束引用。您可以让数组仍然包含字符串,无需计算它们。阵列0000、0030、0130、2200、2230;啊,为什么我没想到这个LOL。让我试试。谢谢正如一个提示一样,PHP中的操作顺序被打破了。这个运算符的行为与其他C类型语言中的行为大不相同。要么使用很多参数,要么更好,根本不要使用这个东西。这些值是在军事时间预设的,不是“10:00”。你可以使用内置函数@Chris78,因为我看到的当前数组有html元素,所以它会进行字符串比较。。最好将html与数组分开。检查上面的编辑。