Menu
CoddyTech

إنشاء مصفوفة ثنائية الأبعاد

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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
?>

تُعدّ المصفوفات متعددة الأبعاد مفيدة للغاية لتنظيم البيانات المنظّمة، مثل لوحات الألعاب وجداول المعلومات، أو أي سيناريو تحتاج فيه إلى تمثيل البيانات بتنسيق شبكي. فهي توفر طريقة طبيعية للتعامل مع الصفوف والأعمدة التي تضم معلومات مترابطة.

challenge icon

التحدي

سهل

ستتلقى ثلاثة مدخلات تمثل أبعاد المصفوفة ثنائية الأبعاد والقيمة الابتدائية لها: عدد الصفوف، وعدد الأعمدة، وقيمة لملء كل موضع. اقرأ هذه المدخلات، وأنشئ مصفوفة ثنائية الأبعاد بالأبعاد المحددة بحيث يُضبط كل عنصر على القيمة المعطاة، ثم اطبع المصفوفة باستخدام print_r().

تنسيق الإدخال:

  • السطر الأول: عدد الصفوف (عدد صحيح)
  • السطر الثاني: عدد الأعمدة (عدد صحيح)
  • السطر الثالث: القيمة الابتدائية لكل عنصر (سلسلة نصية)

المخرجات المتوقعة: المصفوفة ثنائية الأبعاد التي أُنشئت معروضة باستخدام print_r()

جرّب بنفسك

<?php
// اقرأ المدخلات
$rows = intval(fgets(STDIN));
$columns = intval(fgets(STDIN));
$value = trim(fgets(STDIN));

// TODO: اكتب شيفرتك أدناه لإنشاء المصفوفة ثنائية الأبعاد


// اعرض النتيجة
print_r($array);
?>
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم PHP عبر الإنترنت