You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将包含多组title和start的PHP数组传递给FullCalendar 3

处理方案

1. 修正PHP数组结构

你当前写的关联数组使用日期作为键名,PHP中关联数组的键名唯一,同个日期的多个条目会出现后定义的覆盖先定义的问题,需要先调整为存储多条独立日程的二维结构:

如果你是自行构造数据源,直接按以下格式定义:

$arrayDate = [
    [
        "title" => "SG-12345-0 : xx, yy", 
        "start" => "2021-12-02"
    ],
    [
        "title" => "SG-156645-0 : aa, bb", 
        "start" => "2021-12-03"
    ],
    [
        "title" => "SG-13435-0 : cc, dd", 
        "start" => "2021-12-02"
    ],
    [
        "title" => "SG-76864-0 : ee, ff", 
        "start" => "2021-12-04"
    ]
];

如果你拿到的原始数据就是日期=>标题的键值对集合,用以下代码转换:

// 先把原始数据调整为不会覆盖同日期条目的二维结构(避免关联数组同键覆盖)
$rawData = [
    ["2021-12-02" => "SG-12345-0 : xx, yy"],
    ["2021-12-03" => "SG-156645-0 : aa, bb"],
    ["2021-12-02" => "SG-13435-0 : cc, dd"],
    ["2021-12-04" => "SG-76864-0 : ee, ff"]
];

$formattedEvents = [];
foreach ($rawData as $item) {
    foreach ($item as $date => $title) {
        $formattedEvents[] = [
            'title' => $title,
            'start' => $date
        ];
    }
}

2. 前端直接传入处理好的数组

格式化后的数组本身就是FullCalendar要求的事件列表结构,直接json_encode后赋值给events属性即可,不需要额外套数组:

$(document).ready(function() {
    var events = <?php echo json_encode($formattedEvents); ?>;
    $('#calendar').fullCalendar({
      defaultDate: '2021-12-02',
      eventLimit: true,
      events: events
    });
});

内容的提问来源于stack exchange,提问作者Anu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:45:04