Menu
Coddy logo textTech

מיון אירועים לפי תאריך

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 62 מתוך 68.

challenge icon

אתגר

קל

תקבלו שתי קלטים: מחרוזת 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 למערך אירועים. סננו את האירועים כך שיכללו רק אירועים עתידיים (אירועים שהתאריך שלהם מאוחר מהתאריך של היום או שווה לו).

מיינו את האירועים העתידיים לפי התאריך שלהם בסדר עולה (מהתאריך המוקדם ביותר תחילה) באמצעות usort() עם פונקציית השוואה מותאמת אישית. פונקציית ההשוואה צריכה להשוות בין התאריכים של שני אירועים ולהחזיר ערך שקובע את הסדר שלהם.

לאחר המיון, הדפיסו כל אירוע עתידי בפורמט הבא:

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: כתבו את הקוד שלכם למטה
// סננו את האירועים הקרובים (date >= התאריך של היום)
// מיינו את האירועים הקרובים לפי תאריך באמצעות usort()
// הדפיסו כל אירוע קרוב בפורמט הנדרש

?>

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר PHP אונליין