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

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

جزء من قسم Logic & Flow في رحلة PHP على Coddy — الدرس 27 من 68.

المصفوفة متعددة الأبعاد هي ببساطة مصفوفة تحتوي على مصفوفات أخرى كعناصر لها. النوع الأكثر شيوعاً هو المصفوفة ثنائية الأبعاد (2D array)، والتي يمكنك التفكير فيها كشبكة تحتوي على صفوف وأعمدة، تشبه جدول البيانات أو لوحة الألعاب.

إن إنشاء مصفوفة ثنائية الأبعاد في PHP أمر بسيط—فأنت تقوم ببناء مصفوفة يكون فيها كل عنصر عبارة عن مصفوفة بحد ذاته:

<?php
$gameBoard = [
    ["", "", ""],
    ["", "", ""],
    ["", "", ""]
];
?>

يؤدي هذا إلى إنشاء شبكة 3x3 حيث تمثل كل مصفوفة داخلية صفاً، ويمثل كل عنصر داخل تلك المصفوفات عموداً. يمكنك أيضاً إنشاء مصفوفات ثنائية الأبعاد بأنواع بيانات مختلفة:

<?php
$scores = [
    [85, 92, 78],
    [90, 88, 95],
    [76, 84, 89]
];
?>

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

<?php
// array_fill(الفهرس_الابتدائي, عدد_العناصر, القيمة)
$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: اكتب كودك أدناه لإنشاء الـ 2D array


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

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

جميع دروس Logic & Flow