PHP解析循环数天,但希望限制输出的数量
因此,我使用下面的长代码列出即将发生的事件。它询问您要显示事件的天数,比如说10天,并在这10天内将尽可能多的事件分组。我更改了代码,因此给定日期下不只有一个标题和多个事件,而是显示每个事件日期。然而,它仍然给我未来10天的所有事件。我想限制代码,以便在接下来10天的众多事件中,它只返回/显示/输出6个事件 我很确定我需要改变的是:PHP解析循环数天,但希望限制输出的数量,php,parsing,limit,icalendar,limits,Php,Parsing,Limit,Icalendar,Limits,因此,我使用下面的长代码列出即将发生的事件。它询问您要显示事件的天数,比如说10天,并在这10天内将尽可能多的事件分组。我更改了代码,因此给定日期下不只有一个标题和多个事件,而是显示每个事件日期。然而,它仍然给我未来10天的所有事件。我想限制代码,以便在接下来10天的众多事件中,它只返回/显示/输出6个事件 我很确定我需要改变的是: 对于$i=0$i在其中的某个位置放置一个计数器,以跟踪已输出的事件数,并在达到限制后终止循环: for ($i=0; $i<$days_to_displ
对于$i=0$i在其中的某个位置放置一个计数器,以跟踪已输出的事件数,并在达到限制后终止循环:
for ($i=0; $i<$days_to_display; $i++)
{
$thisday = date("Ymd", $thisdate);
if (isset($master_array[$thisday]))
{
echo "<br/>";
for($k=0;$k<=$noofevents;$k++) //Where $noofevents is the number of events!
{
foreach($master_array[($thisday)] as $event_start_time => $event_set)
{
foreach ($event_set as $event_id => $event_info)
{
// Where are we?
// date is $thisdate
// time is $event_start_time
// event is $event_id;
if (! (($event_info['event_text'] == '**PRIVATE**') && ($show_private_events == FALSE)))
{
// event title
echo "<li>";
echo "<span class='bold_text'>" . stripslashes(urldecode($event_info['event_text'])) . "</span><br/>";
// event time range, if not an all-day event
echo " <span style='display: block;'>". date("D. F jS", $thisdate) . "";
if (! (($event_info['event_start'] == '0000') && ($event_info['event_end'] == '0000')))
{
echo ":
" . date("g:ia", $event_info['start_unixtime']) . " - " . date("g:ia", $event_info['end_unixtime'])."</span>";
}
// event location
if (strlen($event_info['location']) > 0)
{
echo " <span class='italic_text'>" . stripslashes(urldecode($event_info['location'])) . "</span>";
}
/*
if ( (($event_info['event_start'] == '0000') && ($event_info['event_end'] == '0000')))
{
echo "all day";
}*/
// event description.
echo "</li>";
} // IF private event AND we don't want to see those
}// END enter this event
} // END foreach event
} // END for x events
} //END if isset
}//END for days
这可能不是最好的方法!但您可以在foreach上方添加另一个for循环,例如:
我没法让它工作。它仍然会限制显示的天数,而不是事件。我在代码中移动了它,这是我得到的唯一效果。:/这可能是一个用户错误,尽管我尝试此操作时未显示任何内容。我认为它需要$days\u来显示线路才能工作。我不知道?谢谢您的尝试。是的,您之前和之后的所有代码都应该是相同的,只需在此位置添加此代码,不删除任何当前代码,它应该可以正常工作。我已编辑了代码,因此您可以复制粘贴,但您可能需要再次检查卷曲
$limit = 6;
$displayed = 0;
foreach(...) {
if (show_event()) {
... show event ...
$displayed++;
if ($displayed >= $limit) {
break;
}
}
}
for ($i=0; $i<$days_to_display; $i++)
{
$thisday = date("Ymd", $thisdate);
if (isset($master_array[$thisday]))
{
echo "<br/>";
for($k=0;$k<=$noofevents;$k++) //Where $noofevents is the number of events!
{
foreach($master_array[($thisday)] as $event_start_time => $event_set)
{
foreach ($event_set as $event_id => $event_info)
{
// Where are we?
// date is $thisdate
// time is $event_start_time
// event is $event_id;
if (! (($event_info['event_text'] == '**PRIVATE**') && ($show_private_events == FALSE)))
{
// event title
echo "<li>";
echo "<span class='bold_text'>" . stripslashes(urldecode($event_info['event_text'])) . "</span><br/>";
// event time range, if not an all-day event
echo " <span style='display: block;'>". date("D. F jS", $thisdate) . "";
if (! (($event_info['event_start'] == '0000') && ($event_info['event_end'] == '0000')))
{
echo ":
" . date("g:ia", $event_info['start_unixtime']) . " - " . date("g:ia", $event_info['end_unixtime'])."</span>";
}
// event location
if (strlen($event_info['location']) > 0)
{
echo " <span class='italic_text'>" . stripslashes(urldecode($event_info['location'])) . "</span>";
}
/*
if ( (($event_info['event_start'] == '0000') && ($event_info['event_end'] == '0000')))
{
echo "all day";
}*/
// event description.
echo "</li>";
} // IF private event AND we don't want to see those
}// END enter this event
} // END foreach event
} // END for x events
} //END if isset
}//END for days