شرح المصفوفات الترابطية في PHP

تخيل أنك تبني نظام تسجيل دخول. بعد نجاح تسجيل المستخدم، تحتاج التعامل مع بياناته مثل الاسم والبريد والدور. هل من المنطقي الوصول لهذه القيم بأرقام مثل [0] و[1]؟ ليس دائماً.

هنا نستخدم المصفوفات الترابطية في PHP (Associative Arrays)، حيث كل قيمة لها اسم واضح (Key) يجعل الكود أسهل قراءة وصيانة.

ما هي المصفوفة الترابطية في PHP؟

هي مصفوفة تعتمد على مفاتيح نصية (Keys) بدلاً من الفهارس الرقمية.

"name"  => "Rachid"
"email" => "rachid@example.com"
"role"  => "admin"

بهذا الشكل يصبح الوصول للبيانات واضحاً: $user["email"] أفضل من $user[1].

فكرة مهمة: إذا كان للبيانات معنى وصفي، فغالباً المصفوفة الترابطية هي الخيار الأنسب.

كيفية تعريف Associative Array

نستخدم الرمز => لربط كل مفتاح بقيمته:

<?php
$user = [
    "name" => "Rachid",
    "email" => "rachid@example.com",
    "role" => "student"
];
?>

الوصول إلى القيم عبر المفتاح

الكود:

<?php
$user = [
    "name" => "Rachid",
    "email" => "rachid@example.com",
    "role" => "student"
];

echo "الاسم: " . $user["name"] . "<br>";
echo "البريد: " . $user["email"];
?>

ما يظهر في المتصفح:

الاسم: Rachid
البريد: rachid@example.com

المرور على المفاتيح والقيم باستخدام foreach

عند الحاجة لعرض كل البيانات، استخدم foreach مع المفتاح والقيمة:

<?php
$user = [
    "name" => "Rachid",
    "email" => "rachid@example.com",
    "role" => "student"
];

foreach ($user as $key => $value) {
    echo "$key: $value <br>";
}
?>

ما يظهر في المتصفح:

name: Rachid
email: rachid@example.com
role: student

Indexed vs Associative: متى أستخدم كل واحدة؟

الحالة Indexed Array Associative Array
قائمة قيم متشابهة أفضل ممكن لكن أقل شيوعاً
بيانات وصفية (اسم، بريد، دور) أقل وضوحاً أفضل
سهولة قراءة الكود لاحقاً متوسطة عالية

أخطاء شائعة في المصفوفات الترابطية

  • خطأ في اسم المفتاح: كتابة "Email" بدل "email".
  • الخلط بين الأقواس: نستخدم [] للوصول للقيم وليس ().
  • استخدام مفاتيح غير واضحة: مثل "x1" بدل أسماء مفهومة.
  • توقع ترتيب ثابت دائماً: لا تعتمد على الترتيب إلا إذا كنت تتحكم به بوضوح.
نصيحة عملية: اختر أسماء مفاتيح واضحة ومنسقة (مثل snake_case أو camelCase) والتزم بنفس الأسلوب في المشروع كله.

تمرين تطبيقي سريع

  1. أنشئ مصفوفة $course فيها المفاتيح: title، teacher، price.
  2. اطبع عنوان الدورة واسم المدرس.
  3. استخدم foreach لطباعة كل مفتاح مع قيمته.
  4. أضف مفتاحاً جديداً مثل level واطبعه.
هدف التمرين: أن تتعامل مع البيانات كما ستفعل في التطبيقات الحقيقية، وليس فقط كأمثلة نظرية.

الأسئلة الشائعة — FAQ

ما هي المصفوفة الترابطية في PHP؟

هي مصفوفة تُخزّن البيانات بمفاتيح نصية واضحة بدلاً من الأرقام.

متى أستخدمها بدل المصفوفة المفهرسة؟

عندما يكون لكل قيمة اسم وصفي مثل الاسم والبريد والحالة.

كيف أصل إلى قيمة داخلها؟

عبر المفتاح مباشرة مثل $user["name"].

كيف أطبع كل المفاتيح والقيم؟

باستخدام foreach ($array as $key => $value).

ممتاز! الآن فهمت كيف تستخدم Associative Arrays لتمثيل البيانات الوصفية بشكل واضح وعملي. في الدرس القادم سننتقل إلى المصفوفات متعددة الأبعاد لبناء هياكل بيانات أكثر تعقيداً.
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن