تحدي: إجمالي سلة التسوق
جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 67 من 68.
التحدي
سهلستتلقى مدخلاً واحداً: سلسلة JSON تمثل مصفوفة من عناصر عربة التسوق.
سيكون الإدخال عبارة عن سلسلة JSON بهذا التنسيق: [{"name":"Laptop","price":999.99,"quantity":1},{"name":"Mouse","price":25.50,"quantity":2},{"name":"Keyboard","price":75.00,"quantity":1}]
اقرأ الإدخال وقم بفك تشفير سلسلة JSON إلى مصفوفة من العناصر. يحتوي كل عنصر على ثلاث خصائص: name و price و quantity.
احسب التكلفة الإجمالية لعربة التسوق عن طريق ضرب سعر كل عنصر في كميته، ثم جمع كل النتائج. استخدم array_reduce() مع دالة استدعاء (callback function) مخصصة لحساب هذا الإجمالي.
بعد حساب الإجمالي، قم بطباعته بالتنسيق التالي:
Total: $[amount]
قم بتنسيق المبلغ ليكون بمنزلتين عشريتين بالضبط باستخدام number_format().
تنسيق الإدخال:
- سطر واحد يحتوي على سلسلة JSON تمثل مصفوفة عناصر عربة التسوق مع المفاتيح
nameوpriceوquantity
المخرجات المتوقعة: سطر واحد يعرض التكلفة الإجمالية بالتنسيق: Total: $[amount] حيث يتم تنسيق المبلغ إلى منزلتين عشريتين
جرّب بنفسك
<?php
// قراءة مدخلات JSON
$input = fgets(STDIN);
// تحويل نص JSON إلى مصفوفة
$items = (array)json_decode($input, true);
// مهام: اكتب الكود الخاص بك أدناه لحساب المجموع باستخدام array_reduce()
// طباعة النتيجة
echo "Total: $" . number_format($total, 2);
?>جميع دروس Logic & Flow
1الدوال المتقدمة
الدوال المجهولةالـ Closures وكلمة 'use'دوال السهمدوال الـ Callbackاستخدام 'call_user_func'دوال المتغيراتالتمرير بالمرجعالدوال العوديةمراجعة: مزيج الدوال4المصفوفات متعددة الأبعاد
إنشاء مصفوفة ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادتعديل عناصر المصفوفة ثنائية الأبعادالتكرار باستخدام الحلقات المتداخلةالمصفوفات الترابطية ثنائية الأبعادمراجعة: تمرين الشبكة البسيطة7التعامل مع التواريخ والأوقات
دالة 'date()'طوابع Unix الزمنية باستخدام 'time()'مقدمة إلى كائن DateTimeتنسيق كائنات DateTimeتعديل كائنات DateTimeمراجعة: حسابات التاريخ10التحديات النهائية
تحدي: فاحص الكلمات المتناظرةتحدي: تكرار الحروفتحدي: إجمالي سلة التسوقتحدي: تصفية العناصر الفريدة2معالجة المصفوفات المتقدمة
الإضافة باستخدام 'array_push'الحذف باستخدام 'array_pop'الإضافة باستخدام 'array_unshift'الحذف باستخدام 'array_shift'دمج المصفوفات المفهرسةدمج المصفوفات الترابطيةالاستخراج باستخدام 'array_slice'القيم باستخدام 'in_array'المفاتيح باستخدام 'array_search'مراجعة: تمرين قائمة التشغيل3ترتيب المصفوفات
ترتيب المصفوفات المفهرسة تصاعدياًترتيب المصفوفات المفهرسة تنازلياًترتيب المصفوفات الترابطية حسب القيمةترتيب المصفوفات الترابطية حسب المفتاحالترتيب بالترتيب الطبيعيالترتيب المخصص باستخدام 'usort'مراجعة: ترتيب لوحة المتصدرين