PHP读取XML日历数据实现同日期事件合并输出的方法
你可以先把读取到的事件按日期分组存储,完成分组后再统一输出即可,不需要修改原有XML文件,参考代码如下:
$sxml = simplexml_load_file($url) or die("Error: Cannot create object"); // 初始化事件分组数组 $eventsByDate = []; foreach ($sxml->children() as $data) { // 转字符串类型,避免SimpleXML对象带来的异常 $date = (string)$data->startdate; $desc = (string)$data->description; // 按日期为键归集事件描述 if (!isset($eventsByDate[$date])) { $eventsByDate[$date] = []; } $eventsByDate[$date][] = $desc; } // 遍历分组输出内容 foreach ($eventsByDate as $date => $eventList) { echo $date . "<br>"; foreach ($eventList as $event) { // 此处用空格实现缩进,也可替换为CSS样式控制排版 echo " " . $event . "<br>"; } }
上述代码的核心逻辑是先遍历所有XML节点完成数据归集,相同日期的事件会被存到同一个数组分组下,最后统一输出即可实现你要的合并效果。
内容的提问来源于stack exchange,提问作者user2141311
相关产品推荐
相关产品推荐

