如何过滤数组以在该日期的每个$event迭代一次$date?



我正在使用日历日历API。我已经设法让它在每个日期为一个事件工作,但我在每个日期有多个事件。以下是每个日期多个事件的格式:

var events = {
'09-08-2015' : [
{content:'Event 1', url:'optional', note:'optional'},
{content:'Event 2', catergory:'optional', and more..}
]
};

这是我尝试在日历上打印我的事件:

<script>
var canvasEvents = {
<?php
foreach($events as $event) {
$d = date("m-d-Y", strtotime($event->event_date));
$t = date("h:i A", strtotime($event->event_start_time));
}
for($i=0; $i<1; $i++){
echo "'$d' : [{content:'<a href="event-single.php?id=$event->id" target=_blank>$event->event_title</a>'},
{content:'<a href="event-single.php?id=$event->id" target=_blank>$event->event_title</a>'},
]";
}
?>
};
</script>

这导致日历上的一个日期仅打印 2 个事件(重复(。我将$i限制为 1 作为测试。我无法使用 $d[$i] 循环遍历变量。我尝试打印出 $d[0],它将日期的第一项打印为字符串。

如何打印出所有活动,以便每个日期有多个活动标题?

提前谢谢。

创建一个关联数组,就像你想要的 JavaScript 对象一样。然后使用json_encode()将其转换为 JavaScript 对象文本。

$canvas_events = [];
foreach ($events as $event) {
$d = date("m-d-Y", strtotime($event->event_date));
$canvas_events[$d][] = [
'content' => "<a href="event-single.php?id=$event->id" target=_blank>$event->event_title</a>", 
'url' => $event->url,
'note' => $event->note
];
}
?>
<script>
var canvasEvents = <?php echo json_encode($canvas_events); ?>;
</script>

最新更新