ما هى المصفوفات Arrays
المصفوفة من أهم انواع البيانات التى تُستخدم فى البرمجة ولا تخلو أي لغة من هنا.
لمعرفة المزيد عن المصفوفات يمكنك مراجعة هذا الدرس هنا
والمصفوفات هى مجموعة من العناصر المترابطة التى تم تخزينها فى الذاكرة فى متغير واحد ويتم عمل العمليات مختلفة عليها.
مثال توضيحى على المصفوفات
تخزين المصفوفات فى PHP
فى المثال التوضحي السابق لنقل أننا نريد تخزين انواع السيارات فى لغة PHP ستقول حسنًا هذا سهل يمكننا تخزينه كالتالى :
حسنًا ممتاز ولكن ماذا ان قولنا ان لدينا 100 نوع مختلف ونريد طباعتهم جميعًا على الشاشة ما الحل فى ذلك ؟ لن نقوم بالطبع بتكرار الجملة echo $car_1 , echo $car_2 وهكذا ل100 مرة.
الحل هو تخزين جميع أنواع السيارات فى متغير واحد وهو المصفوفة وهذا يعطينا سهولة كبيرة فى العمليات على المصفوفة على سبيل المثال سهولة عمل حلقة تكرار لطباعة جميع الأنواع فى المصفوفة. كما سنكتشف قريبًا فى هذا الدرس.
إنشاء مصفوفة فى لغة PHP
فى لغة PHP يوجد دالة مخصصة لإنشاء المصفوفات وهى الدالة array ويكون إنشاء المصفوفات كتالى :
ولغة PHP بها ثلاثة انواع من المصفوفات كالتالى :
- المصفوفات المفهرسة – المصفوفات ذات الفهرس الرقمي
- المصفوفات الترابطية – المصفوفات ذات المفاتيح المسماة
- المصفوفات متعددة الأبعاد – المصفوفات التي تحتوي على مصفوفة واحدة أو أكثر
وسنتعرف على جميع الأنواع قريبًا.
المصفوفات المفهرسة Indexed Arrays
المصفوفات المفهرسة هى المصفوفات البسيطة التى لاتحتاج إلا إلى فهرس رقمى بسيطة ففى المثال السابق يمكن تمثيل أنواع السيارات كالتى
حيث النوع Volvo فهرسه 0 و BMW فهرسه 1 و Toyota فهرسه 2.
ويمكن إسناد القيم عن طريقتين ام الطريقة الأولى او الطريقة الثانية كما فى المثال السابق.
لاحظ ان الفهرس يبدء من 0 وليس من 1.
سنحتاج إلى الفهرس للوصل إلى القيم المخزنة فى المصفوفات لطباعتها او التعامل معها بأي شكل
الحلقات التكرارية على المصفوفات المفهرسة
لنعود للفراضة السابقة اذا كان لدينا 100 او حتى 1000 نوع من أنواع السيارات هنا تكمن قوة المصفوفات فى التعامل مع هذا النوع من البيانات.
لاحظ الدالة count هى دالة خاصة تقوم تعود بعدد عناصر المصفوفة.
لاحظ ايضًا أننا قمنا بعمل loop او حلقة تكرار للمرور على جميع عناصر المجموعة.
المصفوفات المترابطة Associative Arrays
وهو شكل أخر من أشكال المصفوفات فى لغة PHP. وفيه يتم التعبير عن المصفوفة عن طريق المفتاح او Key و القيمة او value.
لنقل مثلًا أننا نريد التعبير عن عدد من البيانات الشخصية ( الاسم والعمر والمهنة مثلًا ) لمستخدم معين.
لاحظ ان name , age , job هى key او المفتاحبينما Max و 43 و Web developer هى values او القيم.
الحلقات التكرارية على المصفوفات المترابطة
الدالة Foreach هى دالة مفيدة جدًا يمكن إستخدامها لعمل حلقة تكرار على المصفوفات حيث كل عنصر على شكل Key و Value.
لاحظ انه يمكنك تسميه key و value باي اسم فى الدالة foreach مثلًا.
$data as $my_key => $my_value
المصفوفة المتعددة الأبعاد Multidimensional array
ببساطة هى المصفوفة التى بداخلها مصفوفات اخرى.
على سبيل المثال فى المثال السابق لنقول اننا نريد تمثيل جميع المستخدمين وليس Joe فقط كالتالى
فى هذه الحالة تسمى المصفوفة ثنائية الأبعاد لان المصفوفة الأم بها مجموعة من المصفوفات الأخرى.
الوصول إلى البيانات فى المصفوفات المتعددة الأبعاد.
أنظر المثال التالى :
لعلك تتسأل كيفية الوصول إلى البيانات فى حالة مثال المستخدمين السابق الذكر ويتم ذلك كالتالى :
الحلقات التكرارية للمصفوفات المتعددة الأبعاد
يتم ذلك عن طريق عمل حلقتين تكراريتين متداخلتين فمثلا لنقول فى مثال الألوان اننا نريد طباعة جميع الألوان فى المصفوفة, يتم ذلك كالتالى :
ملاحظة أخيرة لاحظ ان الأمثلة السابقة هى لمصفوفات ثنائية البعد ولكن PHP تدعم اي عدد من الأبعاد فمثلًا فى مثال المستخدمين لنقول أننا نريد أضافة اللون المفضل لكل مستخدم يتم ذلك كالتالى