إنشاء مصفوفة ثنائية الأبعاد
جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 27 من 68.
المصفوفة متعددة الأبعاد هي ببساطة مصفوفة تحتوي على مصفوفات أخرى كعناصر فيها. والنوع الأكثر شيوعًا هو المصفوفة ثنائية الأبعاد، التي يمكنك تخيلها كشبكة ذات صفوف وأعمدة، تشبه جدول بيانات أو لوحة لعبة.
إنشاء مصفوفة ثنائية الأبعاد في PHP أمرٌ مباشر. أنشئ مصفوفة يكون كل عنصر فيها مصفوفة بحد ذاته:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
?>ينشئ هذا شبكة 3x3 حيث تمثل كل مصفوفة داخلية صفًا، ويمثل كل عنصر داخل تلك المصفوفات عمودًا. يمكنك أيضًا إنشاء مصفوفات ثنائية الأبعاد بأنواع بيانات مختلفة:
<?php
$scores = [
[85, 92, 78],
[90, 88, 95],
[76, 84, 89]
];
?>توفر PHP أيضًا دالة مضمنة تُسمى array_fill() تتيح لك إنشاء مصفوفة بسرعة مملوءة بقيمة محددة. تأخذ ثلاث وسيطات: فهرس البداية، وعدد العناصر، والقيمة المراد ملء المصفوفة بها:
<?php
// array_fill(start_index, num_elements, value)
$row = array_fill(0, 3, 0); // [0, 0, 0]
?>يمكنك دمج array_fill() مع نفسها لإنشاء مصفوفة ثنائية الأبعاد بكفاءة. على سبيل المثال، لإنشاء شبكة 3x3 تبدأ فيها كل خلية بالقيمة 0:
<?php
$grid = array_fill(0, 3, array_fill(0, 3, 0));
// النتيجة: مصفوفة 3x3 كل عنصر فيها يساوي 0
?>تُعدّ المصفوفات متعددة الأبعاد مفيدة للغاية لتنظيم البيانات المنظّمة، مثل لوحات الألعاب وجداول المعلومات، أو أي سيناريو تحتاج فيه إلى تمثيل البيانات بتنسيق شبكي. فهي توفر طريقة طبيعية للتعامل مع الصفوف والأعمدة التي تضم معلومات مترابطة.
التحدي
سهلستتلقى ثلاثة مدخلات تمثل أبعاد المصفوفة ثنائية الأبعاد والقيمة الابتدائية لها: عدد الصفوف، وعدد الأعمدة، وقيمة لملء كل موضع. اقرأ هذه المدخلات، وأنشئ مصفوفة ثنائية الأبعاد بالأبعاد المحددة بحيث يُضبط كل عنصر على القيمة المعطاة، ثم اطبع المصفوفة باستخدام print_r().
تنسيق الإدخال:
- السطر الأول: عدد الصفوف (عدد صحيح)
- السطر الثاني: عدد الأعمدة (عدد صحيح)
- السطر الثالث: القيمة الابتدائية لكل عنصر (سلسلة نصية)
المخرجات المتوقعة: المصفوفة ثنائية الأبعاد التي أُنشئت معروضة باستخدام print_r()
جرّب بنفسك
<?php
// اقرأ المدخلات
$rows = intval(fgets(STDIN));
$columns = intval(fgets(STDIN));
$value = trim(fgets(STDIN));
// TODO: اكتب شيفرتك أدناه لإنشاء المصفوفة ثنائية الأبعاد
// اعرض النتيجة
print_r($array);
?>يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
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'مراجعة: ترتيب لوحة المتصدرينتدرّب بنفسك: مترجم PHP عبر الإنترنت