מיון אירועים לפי תאריך
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 62 מתוך 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 למערך אירועים. סננו את האירועים כך שיכללו רק אירועים עתידיים (אירועים שהתאריך שלהם מאוחר מהתאריך של היום או שווה לו).
מיינו את האירועים העתידיים לפי התאריך שלהם בסדר עולה (מהתאריך המוקדם ביותר תחילה) באמצעות 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()
// הדפיסו כל אירוע קרוב בפורמט הנדרש
?>כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מובילים6פונקציות מערך מסדר גבוה
התמרה באמצעות 'array_map''array_map' עם פונקציה מותאמת אישיתסינון באמצעות 'array_filter''array_filter' עם פונקציה מותאמת אישיתצמצום באמצעות 'array_reduce'מעבר על מערך באמצעות 'array_walk'סיכום: עיבוד נתונים9מתזמן אירועים
נתוני אירועיםהוספת אירוע חדשתרגלו בעצמכם: קומפיילר PHP אונליין