عرض الفعاليات القادمة
جزء من قسم Logic & Flow في رحلة 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 لتاريخ اليوم
// التكرار عبر الأحداث ومقارنة التواريخ
// طباعة الأحداث القادمة بالتنسيق المطلوب
?>جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة '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جدولة الفعاليات
بيانات الفعالياتإضافة فعالية جديدة