🚀 احترف التعامل مع المصفوفات (Arrays) في لغة PHP

هل تخيلت يوماً أنك تريد تخزين قائمة بأسماء 100 طالب في برنامجك؟ هل من المنطقي أن تقوم بإنشاء 100 متغير مختلف مثل $student1, $student2... وهكذا؟

بالطبع لا! هنا يأتي دور المصفوفات (Arrays). المصفوفة هي عبارة عن "حاوية" واحدة يمكنها تخزين قيم متعددة في متغير واحد فقط. بدلاً من تشتيت البيانات، نضعها جميعاً في مكان واحد منظم. 📦


1️⃣ ما هي المصفوفة (Array)؟ 🤔

ببساطة، المصفوفة هي متغير خاص يمكنه حمل مجموعة من القيم. تخيلها كخزانة تحتوي على عدة أدراج؛ كل درج له رقم (يسمى Index أو مؤشر)، وبداخل هذا الدرج نضع القيمة التي نريدها.

في PHP، هناك أنواع أساسية من المصفوفات سنركز عليها في هذا الدرس:

  1. المصفوفات الرقمية (Indexed Arrays).
  2. المصفوفات الترابطية (Associative Arrays).

2️⃣ المصفوفات الرقمية (Indexed Arrays) 🔢

هذا هو النوع الأكثر شيوعاً، حيث يتم ترتيب العناصر باستخدام أرقام تبدأ دائماً من الصفر (0) وليس الواحد.

كيف ننشئ مصفوفة رقمية؟

يمكننا تعريف المصفوفة باستخدام كلمة array() أو باستخدام الأقواس المربعة [].

إليك المثال التالي:

<?php
// إنشاء مصفوفة تحتوي على أسماء فواكه
$fruits = ["Apple", "Banana", "Orange"]; 

// الوصول إلى العنصر الأول (المؤشر 0)
echo $fruits[0]; // Output: Apple

echo "<br>";

// الوصول إلى العنصر الثاني (المؤشر 1)
echo $fruits[1]; // Output: Banana
?>

💡 ملاحظة هامة جداً: تذكر دائماً أن العد في البرمجة يبدأ من 0.

  • العنصر الأول Index 0
  • العنصر الثاني Index 1
  • العنصر الثالث Index 2

3️⃣ كيفية إضافة أو تعديل العناصر ✏️

المصفوفات في PHP مرنة جداً، يمكنك تغيير قيمة أي عنصر بمجرد معرفة مكانه (المؤشر الخاص به).

مثال على التعديل:

<?php
$colors = ["Red", "Green", "Blue"];

// تغيير اللون الأخضر (Index 1) إلى اللون الأصفر
$colors[1] = "Yellow";

// الآن المصفوفة أصبحت: Red, Yellow, Blue
echo $colors[1]; // Output: Yellow
?>

4️⃣ المصفوفات الترابطية (Associative Arrays) 🔑

أحياناً لا يكون الرقم (0, 1, 2) مفيداً لوصف البيانات. ماذا لو أردنا تخزين معلومات عن شخص؟ هنا نستخدم المصفوفات الترابطية.

في هذا النوع، نحن من نحدد "اسم" (Key) لكل قيمة بدلاً من الاعتماد على الأرقام. نستخدم علامة السهم => لربط المفتاح بالقيمة.

مثال عملي:

<?php
// إنشاء مصفوفة ترابطية لتخزين بيانات مستخدم
$user = [
    "name" => "Ahmed", 
    "email" => "ahmed@email.com", 
    "age" => 25
];

// للوصول إلى الاسم، نستخدم المفتاح "name"
echo $user["name"]; // Output: Ahmed

echo "<br>";

// للوصول إلى العمر، نستخدم المفتاح "age"
echo $user["age"]; // Output: 25
?>

شرح الكود:

  • "name" هو المفتاح (Key).
  • "Ahmed" هو القيمة (Value).
  • للوصول للقيمة، ننادي المفتاح الخاص بها داخل الأقواس المربعة.

⚖️ الفرق بين المصفوفة الرقمية والترابطية (ملخص سريع)

وجه المقارنة المصفوفة الرقمية (Indexed) المصفوفة الترابطية (Associative)
المؤشر (Key) أرقام تلقائية (0, 1, 2...) كلمات نحددها نحن (Keys)
طريقة الوصول عبر الرقم $arr[0] عبر الاسم $arr["key"]
الاستخدام للقوائم البسيطة للبيانات المفصلة (مثل الملفات الشخصية)