我有这个小部分:
foreach($events as $key=>$event){
if($event->order == $orderss){
$id = $event->id;
$date = new DateTime($event->start);
$start = $date->format('H:i Y-m-d ');
$date_end = new DateTime($event->end);
$end = $date_end->format('H:i Y-m-d ');
echo $start.' - '.$end.'<br>';
}
}
它正在返回下一个值:
18:00 2015-04-29 - 19:00 2015-04-29
19:00 2015-04-29 - 20:00 2015-04-29
20:00 2015-04-29 - 21:00 2015-04-29
21:00 2015-04-29 - 22:00 2015-04-29
和
11:00 2015-05-11 - 12:00 2015-05-11
12:00 2015-05-11 - 13:00 2015-05-11
13:00 2015-05-11 - 14:00 2015-05-11
我的问题是,如果我可以使用值18:00 2015-04-29
和22:00 2015-04-29
11:00 2015-05-11
和14:00 2015-05-11
?
这是在一个表格列中,在foreach上创建一个包含这些日期的新列,如果我使用$ key == 0,那么只有第一列填满,其余的则保持为空
答案 0 :(得分:1)
使用$key
。假设$event
是一个索引从0
到count($event)-1
的数组:
foreach($events as $key=>$event){
if($event->order == $orderss && (($key == 0) || ($key == count($event)-1))){
$id = $event->id;
$date = new DateTime($event->start);
$start = $date->format('H:i Y-m-d ');
$date_end = new DateTime($event->end);
$end = $date_end->format('H:i Y-m-d ');
echo $start.' - '.$end.'<br>';
}
}
答案 1 :(得分:1)
如果您只想要数组的第一个和最后一个值,可以使用array_shift和array_pop。
$start=new DateTime(array_shift( $events ));
$end=new DateTime(array_pop($events));
答案 2 :(得分:0)
使用end($ array);对于最后一个元素和第一个元素重置($ array);
答案 3 :(得分:0)
第一个值 -
$first = current($events);
为最后一个值 -
$last = end($events);
答案 4 :(得分:0)
//Get the last element
end($events); $last_key = key($events);
//Reset and get the first element
reset($events); $first_key = key($events);
//Now get the dates
$first_date = $events[$first_key];
$last_date = $events[$last_key];
echo $first_date . '<br />' . $last_date;
我先拿到最后一个,因为我之后无论如何重置指针。这样你也可以获得以后可能派上用场的钥匙。