הצגת אירועים קרובים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 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 עבור התאריך של היום
// עבור על האירועים והשווה בין התאריכים
// הדפס את האירועים הקרובים בפורמט הנדרש
?>כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין