【发布时间】:2018-10-07 13:16:49
【问题描述】:
我很难弄清楚如何从嵌套在 foreach 循环中的 else 语句中拆分出一个部分。
我想打破 foreach 循环的部分是:
echo '
<div class="moreEventsContainer">
<div id="moreEventsWrap" class="total-center">
<span class="moreEventsLink">SEE ALL EVENTS</span>
<div class="rightArrow"></div>
</div>
</div>'
;
问题是它是 else 语句的一部分,但是将它留在循环中只会让它在我只想让它出现一次时一遍又一遍地重复自己。
有人知道我是怎么做到的吗?
我尝试在 else 语句结束之前嵌套替代 endforeach,但它只是破坏了代码。
有什么想法吗?
foreach ($event_rows as $event_row) {
$event_name = $event_row['event_name'];
$display_date = $event_row['display_date'];
$event_description = $event_row['small_desc'];
$end_date = new DateTime($event_row['end_date']);
$date = new DateTime('now');
if ($date >= $end_date) {
//$noEvents = 'No events are scheduled yet.';
$noEvents = '
<div id="noEvents">
</div>
';
} else {
echo '<div class="eventBlock">';
echo '<div class="total-center eventBlockWrap">';
echo '<span class="displayDate">'. $display_date .'</span>';
echo '<span class="eventName">'. $event_name .'</span>';
echo '<p class="dGsmall margNone">'. $event_description .'</p>';
echo '</div>';
echo '</div>';
echo '<div class="moreEventsContainer">
<div id="moreEventsWrap" class="total-center">
<span class="moreEventsLink">SEE ALL EVENTS</span>
<div class="rightArrow"></div>
</div>
</div>'
;
}
}
if ($noEvents != NULL) {
echo $noEvents;
} else {
}
更新:
foreach ($event_rows as $event_row) {
$event_name = $event_row['event_name'];
$display_date = $event_row['display_date'];
$event_description = $event_row['small_desc'];
$end_date = new DateTime($event_row['end_date']);
$date = new DateTime('now');
if ($date >= $end_date) {
//$noEvents = 'No events are scheduled yet.';
$noEvents = '
<div id="noEvents">
</div>
';
} else {
echo '<div class="eventBlock">';
echo '<div class="total-center eventBlockWrap">';
echo '<span class="displayDate">'. $display_date .'</span>';
echo '<span class="eventName">'. $event_name .'</span>';
echo '<p class="dGsmall margNone">'. $event_description .'</p>';
echo '</div>';
echo '</div>';
break;
echo '<div class="moreEventsContainer">
<div id="moreEventsWrap" class="total-center">
<span class="moreEventsLink">SEE ALL EVENTS</span>
<div class="rightArrow"></div>
</div>
</div>'
;
}
}
【问题讨论】:
-
我想跳出 foreach 循环 - 试试
break -
I just want it to appear once.-> 所以无论出现什么情况,您都希望其他数据至少打印 1 次?(即使每次 if 条件都为真)跨度> -
我用新代码更新了我的问题。我尝试了 break 方法,它只从我的数据库中输出一行。我有几条要输出的记录,但是休息后的部分我只想出现一次。
-
@Paul 阅读我的评论一次,请回答
-
@AlivetoDie 我希望 else 中的
echo '<div class="moreEventsContainer">只出现一次。所以,如果我的数据库中有 100 条记录,我希望所有 100 条记录都循环并输出,然后moreEventsContainer在那之后显示一次......只有在条件为 else 的情况下。
标签: php if-statement pdo foreach