شرح المصفوفات متعددة الأبعاد في PHP
تخيل أنك تبني لوحة إدارة لمدرسة. كل طالب لديه اسم وعمر ودرجة. إذا خزّنت هذه البيانات في مصفوفة عادية واحدة، ستفقد العلاقة الواضحة بين القيم. هنا نحتاج المصفوفات متعددة الأبعاد في PHP.
في هذا الدرس ستتعلم كيف تبني "مصفوفة داخل مصفوفة"، وكيف تصل للبيانات بدقة، والأهم: كيف تقرأ كود PHP سطراً بسطر.
ما هي المصفوفة متعددة الأبعاد في PHP؟
هي مصفوفة تحتوي على مصفوفات أخرى داخلها. فكّر فيها كجدول:
| الطالب | العمر | الدرجة |
|---|---|---|
| أحمد | 17 | 88 |
| سارة | 16 | 94 |
| ليلى | 17 | 91 |
كل صف في الجدول يمكن أن يكون مصفوفة فرعية داخل مصفوفة رئيسية.
مثال 1: إنشاء مصفوفة متعددة الأبعاد
الكود:
<?php
$students = [
["أحمد", 17, 88],
["سارة", 16, 94],
["ليلى", 17, 91]
];
?>
شرح كود PHP سطراً بسطر:
$students = [يبدأ تعريف مصفوفة رئيسية باسم$students.["أحمد", 17, 88]يمثل الصف الأول: الاسم، العمر، الدرجة.["سارة", 16, 94]يمثل الصف الثاني.["ليلى", 17, 91]يمثل الصف الثالث.];ينهي تعريف المصفوفة.
مثال 2: الوصول إلى قيمة محددة داخلها
الكود:
<?php
$students = [
["أحمد", 17, 88],
["سارة", 16, 94],
["ليلى", 17, 91]
];
echo $students[1][0]; // سارة
echo "<br>";
echo $students[2][2]; // 91
?>
ما يظهر في المتصفح:
سارة
91
شرح كود PHP:
$students[1][0]: الرقم الأول1يعني الصف الثاني، والرقم الثاني0يعني العمود الأول (الاسم).$students[2][2]: الصف الثالث، العمود الثالث (الدرجة).- القاعدة:
[row][column]أي[الصف][العمود].
مثال 3: طباعة كل البيانات باستخدام foreach متداخلة
الكود:
<?php
$students = [
["أحمد", 17, 88],
["سارة", 16, 94],
["ليلى", 17, 91]
];
foreach ($students as $student) {
foreach ($student as $item) {
echo $item . " ";
}
echo "<br>";
}
?>
ما يظهر في المتصفح:
أحمد 17 88
سارة 16 94
ليلى 17 91
شرح كود PHP:
- الحلقة الأولى
foreach ($students as $student)تمر على كل صف. - الحلقة الثانية
foreach ($student as $item)تمر على عناصر الصف الواحد. echo $item . " ";يطبع كل قيمة مع مسافة.echo "<br>";ينزل سطراً جديداً بعد انتهاء الصف.
متى أستخدم المصفوفات متعددة الأبعاد؟
- عند تمثيل جداول بيانات (طلاب، منتجات، طلبات).
- عند التعامل مع بيانات API تحتوي بنية متداخلة.
- عندما تحتاج تنظيم البيانات على مستويات متعددة.
أخطاء شائعة للمبتدئين
- الخلط بين رقم الصف ورقم العمود عند الوصول للقيم.
- نسيان أن الفهرسة تبدأ من 0.
- استخدام حلقة واحدة فقط وترك البيانات الداخلية بدون مرور.
- كتابة فهرس غير موجود مما يسبب تحذيراً.
تمرين تطبيقي سريع
- أنشئ مصفوفة
$productsفيها 3 صفوف، كل صف: الاسم، السعر، الكمية. - اطبع اسم المنتج الثاني وسعره.
- استخدم
foreachمتداخلة لطباعة الجدول كاملاً.
الأسئلة الشائعة — FAQ
ما هي المصفوفة متعددة الأبعاد في PHP؟
هي مصفوفة تحتوي على مصفوفات بداخلها، وتستخدم لتمثيل بيانات مركبة مثل الصفوف والأعمدة.
كيف أصل إلى عنصر داخلها؟
باستخدام أكثر من فهرس مثل $students[1][2].
متى أستخدمها؟
عند التعامل مع بيانات لها أكثر من مستوى، مثل قائمة طلاب وكل طالب له خصائص متعددة.
كيف أطبع كل البيانات؟
غالباً باستخدام حلقتين متداخلتين foreach.