Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

فرز الفعاليات حسب التاريخ

جزء من قسم Logic & Flow في رحلة 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: اكتب كودك أدناه
// تصفية الأحداث القادمة (التاريخ >= تاريخ اليوم)
// فرز الأحداث القادمة حسب التاريخ باستخدام usort()
// طباعة كل حدث قادم بالتنسيق المطلوب

?>

جميع دروس Logic & Flow