إنشاء مصفوفة ثنائية الأبعاد
جزء من قسم المنطق وتدفق التنفيذ في رحلة PHP على Coddy. الدرس 27 من 68.
المصفوفة متعددة الأبعاد هي ببساطة مصفوفة تحتوي على مصفوفات أخرى كعناصر فيها. والنوع الأكثر شيوعًا هو المصفوفة ثنائية الأبعاد، التي يمكنك اعتبارها شبكةً تحتوي على صفوف وأعمدة، على غرار جدول بيانات أو لوحة ألعاب.
إنشاء مصفوفة ثنائية الأبعاد في PHP أمر بسيط. تنشئ مصفوفة يكون كل عنصر فيها مصفوفة بحد ذاته:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
?>ينشئ هذا شبكة 3x3 حيث يمثّل كل array داخلي row، ويمثّل كل element داخل تلك arrays column. يمكنك أيضًا إنشاء arrays ثنائية الأبعاد بأنواع بيانات مختلفة:
<?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
?>تُعد المصفوفات متعددة الأبعاد مفيدة للغاية لتنظيم البيانات المهيكلة مثل لوحات الألعاب، أو جداول المعلومات، أو أي سيناريو تحتاج فيه إلى تمثيل البيانات بتنسيق شبكي. فهي توفّر طريقة طبيعية للعمل مع صفوف وأعمدة من المعلومات ذات الصلة.
التحدي
سهلستتلقى ثلاثة مدخلات تمثل أبعاد مصفوفة ثنائية الأبعاد والقيمة الأولية لها: عدد الصفوف، وعدد الأعمدة، وقيمة لملء كل موضع. اقرأ هذه المدخلات، وأنشئ مصفوفة ثنائية الأبعاد بالأبعاد المحددة بحيث يتم تعيين القيمة المعطاة لكل element، ثم اطبع المصفوفة باستخدام print_r().
تنسيق الإدخال:
- السطر الأول: عدد الصفوف (عدد صحيح)
- السطر الثاني: عدد الأعمدة (عدد صحيح)
- السطر الثالث: القيمة الأولية لكل
element(سلسلة نصية)
الإخراج المتوقع: المصفوفة الثنائية الأبعاد التي تم إنشاؤها، معروضة باستخدام 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 عبر الإنترنت