Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

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

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

challenge icon

التحدي

سهل

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

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

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

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

جرّب بنفسك

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

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


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

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

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

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