إضافة فعالية جديدة
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 60 من 68.
التحدي
سهلستتلقى مدخلين: سلسلة JSON تمثل مصفوفة الأحداث الحالية من الدرس السابق، وثلاث قيم في السطر الثاني مفصولة بمسافات تمثل اسم الحدث الجديد وتاريخه وموقعه.
سيكون المدخل الأول عبارة عن سلسلة JSON بهذا التنسيق: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]
سيكون المدخل الثاني عبارة عن ثلاث قيم مفصولة بمسافات بهذا التنسيق: Workshop 2024-06-10 Library
اقرأ كلا المدخلين. قم بفك تشفير سلسلة JSON إلى مصفوفة أحداث. بعد ذلك، قم بتحليل المدخل الثاني لاستخراج اسم الحدث وتاريخه وموقعه. أنشئ مصفوفة ترابطية (associative array) جديدة لهذا الحدث باستخدام المفاتيح "name" و "date" و "location"، وأضفها إلى مصفوفة الأحداث باستخدام array_push().
بعد إضافة الحدث الجديد، قم بالمرور عبر جميع الأحداث في المصفوفة واطبع كل واحد منها بالتنسيق التالي:
Event: [name] on [date] at [location]
اطبع كل حدث في سطر منفصل، بالترتيب الذي يظهر به في المصفوفة.
تنسيق المدخلات:
- السطر الأول: سلسلة JSON تمثل مصفوفة الأحداث الموجودة
- السطر الثاني: ثلاث قيم مفصولة بمسافات تمثل اسم الحدث الجديد وتاريخه وموقعه (مثال:
Workshop 2024-06-10 Library)
المخرجات المتوقعة: طباعة كل حدث (بما في ذلك الحدث المضاف حديثاً) في سطر منفصل بالتنسيق: Event: [name] on [date] at [location]
جرّب بنفسك
<?php
// قراءة سلسلة JSON من المدخل الأول
$jsonInput = trim(fgets(STDIN));
// قراءة تفاصيل الحدث الجديد من المدخل الثاني
$newEventInput = trim(fgets(STDIN));
// فك تشفير سلسلة JSON إلى مصفوفة
$events = (array)json_decode($jsonInput, true);
// تحليل تفاصيل الحدث الجديد (الاسم، التاريخ، الموقع)
list($name, $date, $location) = explode(' ', $newEventInput);
// TODO: اكتب كودك أدناه
// إنشاء مصفوفة حدث جديد وإضافتها إلى مصفوفة الأحداث باستخدام array_push()
// ثم قم بالمرور على جميع الأحداث وطباعتها بالتنسيق المطلوب
?>جميع دروس 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جدولة الفعاليات
بيانات الفعالياتإضافة فعالية جديدة