إعداد المشروع: هيكل البيانات
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 33 من 68.
التحدي
سهلستتلقى مدخلاً واحداً: كائن JSON يمثل دفتر درجات الطلاب. يستخدم دفتر الدرجات أسماء الطلاب كمفاتيح، ولكل طالب مصفوفة ترابطية تحتوي على "id" (رقم تعريف الطالب) و "grades" (مصفوفة من درجات اختباراتهم). اقرأ المدخلات، وقم بتحويل سلسلة JSON إلى مصفوفة ترابطية ثنائية الأبعاد، واطبع هيكل دفتر الدرجات بالكامل باستخدام print_r().
سيعمل هيكل البيانات هذا كأساس لنظام دفتر الدرجات الذي ستبنيه طوال هذا المشروع.
تنسيق المدخلات: سطر واحد يحتوي على كائن JSON يمثل دفتر الدرجات (مثال: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
المخرجات المتوقعة: مصفوفة دفتر الدرجات معروضة باستخدام print_r()
جرّب بنفسك
<?php
// قراءة مدخلات JSON
$input = fgets(STDIN);
// TODO: تحويل نص JSON إلى مصفوفة ترابطية
// TODO: طباعة هيكل دفتر الدرجات باستخدام print_r()
?>جميع دروس 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'مراجعة: تمرين قائمة التشغيل5سجل درجات الطلاب
إعداد المشروع: هيكل البياناتإضافة طالب جديدإضافة درجة لطالبحساب متوسط الطالبإيجاد الطالب المتفوقإنشاء تقرير الدرجات3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين