/ دورة PHP الشاملة
0/13 مكتملة
📚 الدرس 7 من 13

المصفوفات (Arrays)

تخزين مجموعات من البيانات

🕐 20-30 دقيقة 📝 5 أسئلة 💻 2 أمثلة برمجية

أنواع المصفوفات

المصفوفة تخزن مجموعة من القيم في متغير واحد. في PHP هناك ثلاثة أنواع:

1. المصفوفة المفهرسة (Indexed Array): مفاتيحها أرقام تبدأ من 0 تلقائياً.

2. المصفوفة الترابطية (Associative Array): مفاتيحها نصوص تحددها أنت. أشبه بالقاموس.

3. المصفوفة متعددة الأبعاد (Multidimensional): مصفوفة داخل مصفوفة — مثالية لتمثيل البيانات الجدولية.
PHP
<?php
// 1. مصفوفة مفهرسة
$colors = ["أحمر", "أخضر", "أزرق"];
echo $colors[0] . "<br>"; // أحمر (يبدأ من 0)
echo $colors[2] . "<br>"; // أزرق

// إضافة عناصر
$colors[] = "أصفر";       // إضافة في النهاية
array_push($colors, "بنفسجي");
echo count($colors) . " ألوان<br>";

// 2. مصفوفة ترابطية
$student = [
    "name"  => "أحمد",
    "age"   => 20,
    "grade" => 95,
    "city"  => "القاهرة"
];
echo $student["name"]  . " عمره " . $student["age"] . "<br>";
echo "تقديره: " . $student["grade"] . "<br>";

// تعديل قيمة
$student["grade"] = 98;

// 3. مصفوفة متعددة الأبعاد
$class = [
    ["name" => "أحمد",   "score" => 95],
    ["name" => "فاطمة",  "score" => 88],
    ["name" => "محمود",  "score" => 92],
];
echo "<br>نتائج الفصل:<br>";
foreach ($class as $s) {
    echo $s["name"] . ": " . $s["score"] . "<br>";
}
?>
الناتج المتوقع
أحمر أزرق 5 ألوان أحمد عمره 20 تقديره: 95 نتائج الفصل: أحمد: 95 فاطمة: 88 محمود: 92

دوال المصفوفات المهمة

PHP توفر عشرات الدوال الجاهزة للتعامل مع المصفوفات:

الدالةالوظيفة
count()عدد العناصر
array_push()إضافة في النهاية
array_pop()حذف من النهاية
array_shift()حذف من البداية
array_unshift()إضافة في البداية
array_merge()دمج مصفوفتين
array_search()البحث عن قيمة
in_array()هل القيمة موجودة؟
sort() / rsort()ترتيب تصاعدي/تنازلي
array_map()تطبيق دالة على كل عنصر
array_filter()تصفية العناصر
PHP
<?php
$nums = [5, 2, 8, 1, 9, 3, 7];

// ترتيب
sort($nums);
echo implode(", ", $nums) . "<br>"; // 1,2,3,5,7,8,9

// البحث
echo in_array(8, $nums)   ? "8 موجود
" : "غير موجود
";
echo array_search(8, $nums) . "<br>"; // موضع 8

// array_map: تطبيق دالة على كل عنصر
$doubled = array_map(fn($n) => $n * 2, $nums);
echo implode(", ", $doubled) . "<br>"; // 2,4,6,10,14,16,18

// array_filter: تصفية
$evens = array_filter($nums, fn($n) => $n % 2 == 0);
echo implode(", ", $evens) . "<br>"; // 2,8

// array_reduce: تجميع
$sum = array_reduce($nums, fn($carry, $n) => $carry + $n, 0);
echo "المجموع: $sum<br>"; // 35

// دمج وشرائح
$a = [1, 2, 3];
$b = [4, 5, 6];
$merged = array_merge($a, $b);
$slice  = array_slice($merged, 2, 3); // ابدأ من index 2، خذ 3
echo implode(", ", $slice); // 3,4,5
?>
الناتج المتوقع
1, 2, 3, 5, 7, 8, 9 8 موجود 6 2, 4, 6, 10, 14, 16, 18 2, 8 المجموع: 35 3, 4, 5
🧠

اختبر فهمك — المصفوفات (Arrays)

5/5 للمتابعة
السؤال 1
من أي رقم تبدأ فهرسة المصفوفة المفهرسة في PHP؟
السؤال 2
ما دالة حذف آخر عنصر من مصفوفة؟
السؤال 3
ما الفرق بين in_array() و array_search()؟
السؤال 4
ما دالة دمج عناصر مصفوفة في نص بفاصل معين؟
السؤال 5
ما وظيفة array_map()؟