列出即将举行的活动
本课属于 Coddy PHP 学习旅程的“逻辑与流程”单元。第 61 课,共 68 课。
挑战
简单你会收到两个输入:一个表示现有事件数组的 JSON 字符串,以及一个表示今天日期的日期字符串,格式为 YYYY-MM-DD。
第一个输入是以下格式的 JSON 字符串:[{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]
第二个输入是以下格式的日期字符串:2024-04-01
读取两个输入,并将 JSON 字符串解码为事件数组。创建两个 DateTime 对象:一个用于表示今天的日期(使用第二个输入),另一个用于在遍历事件时表示每个事件的日期。
筛选并显示即将发生的事件,也就是日期大于或等于今天日期的事件。对于每个即将发生的事件,按以下格式打印:
Upcoming: [name] on [date] at [location]
每个即将发生的事件单独打印一行,并按照它们在数组中出现的顺序排列。如果某个事件的日期早于今天的日期,就不要打印它。
输入格式:
- 第一行:表示事件数组的 JSON 字符串,包含键
name、date和location - 第二行:表示今天日期的日期字符串,格式为 YYYY-MM-DD(例如:
2024-04-01)
预期输出:每个即将发生的事件单独打印一行,格式为:Upcoming: [name] on [date] at [location]
亲手试试
<?php
// 读取包含事件的 JSON 字符串
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// 读取今天的日期
$todayDate = trim(fgets(STDIN));
// TODO: 在下面编写你的代码
// 为今天的日期创建 DateTime 对象
// 循环遍历事件并比较日期
// 按要求的格式输出即将发生的事件
?>逻辑与流程中的所有课
自己练习: PHP 在线编译器