مراجعة: ترتيب لوحة المتصدرين
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 26 من 68.
التحدي
سهلستتلقى مدخلين: الأول، مصفوفة ترابطية (associative array) لأسماء اللاعبين ونتائجهم بتنسيق JSON، والثاني، ترتيب الفرز (إما "asc" أو "desc"). قم بقراءة كلا المدخلين، وحوّل سلسلة JSON إلى مصفوفة، ثم قم بفرز لوحة المتصدرين حسب النتائج وفقاً للترتيب المحدد، واطبع اسم كل لاعب ونتيجته في سطر منفصل بالتنسيق التالي: Name: Score
استخدم asort() للترتيب التصاعدي و arsort() للترتيب التنازلي للحفاظ على ارتباط أسماء اللاعبين بنتائجهم.
تنسيق الإدخال:
- السطر الأول: كائن JSON يحتوي على أسماء اللاعبين كمفاتيح والنتائج كقيم (مثال:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - السطر الثاني: ترتيب الفرز - إما
ascأوdesc
المخرجات المتوقعة: اسم كل لاعب ونتيجته في سطر منفصل بالتنسيق Name: Score، مرتبة وفقاً للترتيب المحدد
جرّب بنفسك
<?php
// قراءة مدخلات JSON
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// قراءة ترتيب الفرز
$order = trim(fgets(STDIN));
// TODO: اكتب الكود الخاص بك أدناه لفرز لوحة المتصدرين بناءً على الترتيب
// عرض اسم كل لاعب ودرجته
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>جميع دروس 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'مراجعة: ترتيب لوحة المتصدرين