[英]For loop with foreach loop in it? PHP
我正在努力实现以下目标。
经历一个for循环,并产生一组7个选择框,其中包含时间选项。 我现在使此循环工作正常。 这是针对一周中每天都有时间开始活动的表单。
对于要更改值的用户,我想生成相同的7个框,但是对于数据库中输入的每个值,我想添加该日期的原始选定值,并请为其中的框提供选择值。
时代的foreach循环
foreach ($times as $time) {
echo '<option value="' . $time['num'] . '"'; if ($event == $time['dec']){echo 'selected="selected"';};
echo '>';
echo $time['clock'];
echo '</option>';
}
时间数组
$times = array( array('num' => 70000, 'dec' => '07:00:00', 'clock' => '7:00am'), array('num' => 71500, 'dec' => '07:15:00', 'clock' => '7:15am') etc…
这将产生选择选项。
然后foreach获取现有值。
foreach ($event -> Selected as $select) {
$event = $select -> Start;
}
现在这一切正常,但是如果存在3个记录,则仅产生3个选择,我想使用DB值产生前3个选择中的7个选择,如果存在3个记录并且4个空选择。
该数组仅包含有限数量的条目,因此循环最多只能迭代此数量。
您可以通过检查数组中有多少个元素,然后为其余元素输出空值来解决此问题。
例如,在循环后添加以下内容:
$count = 7 - count($times);
for($i = 0; $i < $count; $i ++)
{
echo '<option></option>';
}
上面是一个简单的循环,输出空条目以确保有7个下拉值。
您可以在进行foreach之前执行此操作:
$desired = 7;
$extra = array_fill(0, $desired - count($times));
$times = array_merge($times, $extra);
它将使您的数组$times
始终与$desired
的数字一样长。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.