📘 الدرس 9: المصفوفات (Arrays) في PHP بشكل موسع
المصفوفات Arrays هي العمود الفقري لأي موقع ديناميكي. بدل ما تخزن كل قيمة في متغير مستقل، المصفوفة تخليك تجمع 100 قيمة وأكثر في متغير واحد وتتعامل معها بسهولة. كل نتيجة من قاعدة البيانات، كل قائمة منتجات، كل تعليقات المستخدمين = مصفوفة.
$arr = ["قيمة1", "قيمة2"]; بدل array("قيمة1", "قيمة2")
🔹 1. المصفوفة المفهرسة Indexed Array
مصفوفة ترقم عناصرها تلقائياً من 0، 1، 2، 3... وتستخدمها للقوائم البسيطة.
إنشاء مصفوفة مفهرسة:
$fruits = array("تفاح", "موز", "برتقال");
// أو بالطريقة المختصرة:
$fruits = ["تفاح", "موز", "برتقال"];
echo $fruits[0]; // تفاح
echo $fruits[1]; // موز
?>
مثال عملي: عرض جميع العناصر باستخدام foreach
$fruits = ["تفاح", "موز", "برتقال", "عنب"];
foreach($fruits as $fruit){
echo "الفاكهة: $fruit <br>";
}
?>
الاستخدام في الموقع: عرض قائمة المنتجات، المقالات، التصنيفات، الصور في السلايدر.
🔹 2. المصفوفة الترابطية Associative Array
كل عنصر له مفتاح Key خاص فيه بدل الرقم. ممتازة لتخزين بيانات المستخدم أو إعدادات الموقع.
إنشاء مصفوفة ترابطية:
$user = array(
"name" => "حسام",
"age" => 25,
"email" => "hossam@example.com",
"country" => "اليمن"
);
echo $user["name"]; // حسام
echo $user["email"]; // hossam@example.com
?>
مثال عملي: عرض جميع القيم مع المفاتيح
foreach($user as $key => $value){
echo ucfirst($key). " : ". $value. " <br>";
}
?>
الاستخدام في الموقع: عرض بيانات المستخدم، بيانات المنتج، إعدادات الموقع، بيانات الفاتورة.
🔹 3. المصفوفة متعددة الأبعاد Multidimensional Array
مصفوفة داخل مصفوفة. تستخدمها لجداول البيانات المعقدة.
مثال عملي: قائمة الطلاب
$students = array(
array("name" => "أحمد", "age" => 20, "grade" => "A"),
array("name" => "ليلى", "age" => 22, "grade" => "B"),
array("name" => "خالد", "age" => 21, "grade" => "A+")
);
echo $students[0]["name"]; // أحمد
echo $students[1]["grade"]; // B
?>
عرض جميع العناصر بحلقة مزدوجة:
foreach($students as $student){
echo "الاسم: ". $student["name"]. " - ";
echo "العمر: ". $student["age"]. " - ";
echo "التقدير: ". $student["grade"]. " <br>";
}
?>
الاستخدام في الموقع: جدول الطلاب، المنتجات مع المواصفات، سلة التسوق، نتائج الاستعلامات من قاعدة البيانات.
🔹 4. دوال مهمة للتعامل مع المصفوفات
| الدالة | الوظيفة | مثال |
|---|---|---|
count() | عدد عناصر المصفوفة | count($arr) |
array_push() | إضافة عنصر لنهاية المصفوفة | array_push($arr, "قيمة") |
array_pop() | حذف آخر عنصر | array_pop($arr) |
array_shift() | حذف أول عنصر | array_shift($arr) |
array_unshift() | إضافة عنصر لبداية المصفوفة | array_unshift($arr, "قيمة") |
array_keys() | استخراج جميع المفاتيح | array_keys($arr) |
array_values() | استخراج جميع القيم | array_values($arr) |
in_array() | فحص إذا القيمة موجودة | in_array("تفاح", $arr) |
array_merge() | دمج مصفوفتين | array_merge($arr1, $arr2) |
array_reverse() | عكس ترتيب المصفوفة | array_reverse($arr) |
sort() | ترتيب تصاعدي | sort($arr) |
rsort() | ترتيب تنازلي | rsort($arr) |
مثال عملي شامل:
$colors = ["أحمر", "أزرق"];
// إضافة عنصر
array_push($colors, "أخضر");
// عدد العناصر
echo "العدد: ". count($colors). "<br>"; // 3
// حذف آخر عنصر
array_pop($colors);
// طباعة المصفوفة كاملة
print_r($colors); // Array ( [0] => أحمر [1] => أزرق )
// فحص إذا اللون موجود
if(in_array("أحمر", $colors)){
echo "اللون موجود";
}
?>
🔹 5. دوال الترتيب والبحث المتقدم
$numbers = [5, 2, 9, 1, 7];
// ترتيب تصاعدي
sort($numbers);
print_r($numbers); // [1, 2, 5, 7, 9]
// ترتيب تنازلي
rsort($numbers);
print_r($numbers); // [9, 7, 5, 2, 1]
// دمج مصفوفتين
$arr1 = ["a", "b"];
$arr2 = ["c", "d"];
$merged = array_merge($arr1, $arr2);
print_r($merged); // ["a", "b", "c", "d"]
?>
🔹 6. مثال عملي: سلة تسوق بسيطة
هذا مثال يوضح كيف تستخدم المصفوفات في مشروع حقي:
$cart = [];
// إضافة منتجات للسلة
$cart[] = array("name" => "لابتوب", "price" => 3000, "qty" => 1);
$cart[] = array("name" => "ماوس", "price" => 50, "qty" => 2);
$cart[] = array("name" => "كيبورد", "price" => 100, "qty" => 1);
// حساب الإجمالي
$total = 0;
foreach($cart as $item){
$subtotal = $item["price"] * $item["qty"];
$total += $subtotal;
echo $item["name"]. " - ". $subtotal. " ريال <br>";
}
echo "<strong>الإجمالي: $total ريال</strong>";
?>
var_dump($array) أو print_r($array) أثناء التطوير عشان تشوف محتوى المصفوفة بالكامل. مفيد جداً في تصحيح الأخطاء.
$arr["key"] يطلع Warning. استخدم isset($arr["key"]) قبل الوصول له.
1. استخدم المصفوفات المفهرسة للقوائم البسيطة
2. استخدم المصفوفات الترابطية للبيانات المنظمة
3. المصفوفات متعددة الأبعاد = جداول البيانات
4. تعلم 8 دوال أساسية:
count, array_push, array_pop, foreach, in_array, array_merge, sort, array_keys
© جميع الحقوق محفوظة - مدونة الحسام | al-hassam.blogspot.com
