FOREACH循环从预订阵列输出数据。在此循环中,IF条件过滤了几个预订。如果预订日期是今天之后,它会将预订信息输出到表格中。工作正常。
如果将来没有预订,应打印一条消息"将来不会预订"。如果从未进行过预订,这样可以正常工作,但如果过去的预订已经存在,则过去每次预订都会重复此消息。
我该如何防止这种情况?
提前致谢
和Thorsten
<tbody>
<?php if ($tpl['booking_arr']) { ?>
<?php foreach ($tpl['booking_arr'] as $item) { ?>
<?php if (date('Ymd', strtotime($item['dt'])) > date('Ymd')) { ?>
<tr>
<td>
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?controller=pjAdminBookings&action=pjActionUpdate&id=<?php echo $item['id']; ?>"><?php echo date($tpl['option_arr']['o_date_format'], strtotime($item['dt']));?></a>
</td>
<td style="text-align: center;"><?php echo (int)$item['people'] + (int)$item['children']; ?></td>
</tr><?php } else { ?>
<tr>
<td colspan="2" style="font-size: 10px;">
keine bevorstehenden Reservierungen
</td>
</tr>
<?php } } } ?>
<tr><td style="border-bottom: 1px solid #000;" colspan="2"></td></tr>
<tr>
<td class="reg-seit">REG: <?php echo date($tpl['option_arr']['o_date_format'], strtotime($tpl['arr']['created']));?></td>
<td class="res-seit">RES: <?php $array = $tpl['booking_arr']; $getCount = count($array); echo ($getCount);?> </td>
</tr>
答案 0 :(得分:1)
我对PHP知之甚少,但这里有一个想法:不要在foreach循环中放入“没有即将发布的预订”消息,而不必从循环中断开(假设按日期排序)。使用布尔值检查是否有任何未来的预订,默认情况下设置为false,如果找到将来的预订,则设置为true。循环之后,如果没有预订,则打印消息。在伪代码中,
boolean futureBookingsExist = false;
foreach (date in bookingsArray) {
if (date > currentDate) {
outputBookingDate();
futureBookingsExist = true;
}
}
if (!futureBookingsExist) {
print("no future bookings exist");
}
答案 1 :(得分:0)
使用foreach
打印出该邮件后,您可以暂时退出break
块。这是基于$tpl['booking_arr']
的内容按日期排序的假设。如果不是,你将不得不对它进行排序。