مصفوفة PHP: ترابطية، متعددة الأبعاد
⚡ ملخص ذكي
تُخزّن مصفوفات PHP العديد من القيم المترابطة داخل متغير واحد، مما يُسهّل تجميع البيانات ذات الصلة ومعالجتها. يتناول هذا الشرح المصفوفات الرقمية، والترابطية، ومتعددة الأبعاد، وعوامل مقارنة المصفوفات، والوظائف الأساسية مثل count و sort و ksort و asort.

ما هي مصفوفة PHP؟
مصفوفة PHP عبارة عن متغير يقوم بتخزين أكثر من جزء واحد من البيانات المرتبطة في متغير واحد.
فكر في المصفوفة على أنها صندوق من الشوكولاتة يحتوي على فتحات في الداخل.
يمثل المربع المصفوفة نفسها، بينما تمثل المساحات التي تحتوي على الشوكولاتة القيم المخزنة في المصفوفة.
توضح الأمثلة أدناه كيفية عمل ذلك.
المصفوفات الرقمية
تستخدم المصفوفات الرقمية الأرقام كمفاتيح وصول.
مفتاح الوصول هو إشارة إلى فتحة الذاكرة في متغير الصفيف.
يتم استخدام مفتاح الوصول كلما أردنا قراءة أو تعيين قيمة جديدة لعنصر من عناصر المصفوفة.
فيما يلي صيغة إنشاء مصفوفة رقمية في لغة PHP.
مثال المصفوفة
<?php $variable_name[n] = value; ?>
Or
<?php
$variable_name = array(n => value, ...);
?>
هنا،
- "$variable_name..." هو اسم المتغير
- "[n]" هو رقم فهرس الوصول للعنصر
- "القيمة" هي القيمة المخصصة لعنصر الصفيف.
لنلقِ نظرة الآن على مثال لمصفوفة رقمية.
لنفترض أن لدينا 5 أفلام نريد تخزينها في متغيرات المصفوفة.
يمكننا استخدام المثال الموضح أدناه للقيام بذلك.
<?php $movie[0] = 'Shaolin Monk'; $movie[1] = 'Drunken Master'; $movie[2] = 'American Ninja'; $movie[3] = 'Once upon a time in China'; $movie[4] = 'Replacement Killers'; ?>
هنا،
يُعطى كل فيلم رقم فهرس يُستخدم لاسترجاع قيمته أو تعديلها. انظر إلى الكود التالي.
<?php $movie[0]="Shaolin Monk"; $movie[1]="Drunken Master"; $movie[2]="American Ninja"; $movie[3]="Once upon a time in China"; $movie[4]="Replacement Killers"; echo $movie[3]; $movie[3] = " Eastern Condors"; echo $movie[3]; ?>
الإخراج:
Once upon a time in China Eastern Condors
كما ترون من الأمثلة المذكورة أعلاه، فإن العمل مع المصفوفات في PHP عند التعامل مع قيم متعددة من نفس الطبيعة هو أمر سهل ومرن للغاية.
وبدلاً من ذلك، يمكن أيضًا إنشاء متغيرات المصفوفة أعلاه باستخدام الكود التالي.
<?php $movie = array(0 => "Shaolin Monk", 1 => "Drunken Master", 2 => "American Ninja", 3 => "Once upon a time in China", 4 => "Replacement Killers" ); echo $movie[4]; ?>
الإخراج:
Replacement Killers
PHP المصفوفة الترابطية
تختلف المصفوفات الترابطية عن المصفوفات الرقمية من حيث أن المصفوفات الترابطية تستخدم أسماء وصفية لمفاتيح المعرف.
فيما يلي صيغة إنشاء مصفوفة ترابطية في لغة PHP.
<?php $variable_name['key_name'] = value; $variable_name = array('keyname' => value); ?>
هنا،
- "$variable_name..." هو اسم المتغير
- "['key_name']" هو مفتاح الوصول للعنصر
- "القيمة" هي القيمة المخصصة لعنصر الصفيف.
لنفترض أن لدينا مجموعة من الأشخاص، ونريد تحديد جنس كل شخص مقابل اسمه.
يمكننا استخدام مصفوفة ترابطية للقيام بذلك. يساعدنا الكود أدناه في ذلك.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); print_r($persons); echo ""; echo "Mary is a " . $persons["Mary"]; ?>
هنا،
الإخراج:
Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female
تُعد المصفوفات الترابطية مفيدة للغاية أيضًا عند استرجاع البيانات من قاعدة البيانات.
يتم استخدام أسماء الحقول كمفاتيح معرف.
PHP المصفوفات متعددة الأبعاد
هذه هي المصفوفات التي تحتوي على صفائف متداخلة أخرى.
ميزة المصفوفات متعددة الأبعاد هي أنها تسمح لنا بتجميع البيانات ذات الصلة معًا.
لنلقِ نظرة الآن على مثال عملي يُطبّق مصفوفة متعددة الأبعاد في لغة PHP.
ويبين الجدول أدناه قائمة الأفلام حسب الفئة.
| عنوان الفيلم | الفئة |
|---|---|
| النمر الوردي | كوميديا |
| جون إنجليش | كوميديا |
| إستسلم بعد نضال | اكشن |
| المستهلكة | اكشن |
| رب الخواتم | الملحمي |
| روميو وجولييت | رومانس |
| لا نرى الشر لا نسمع الشر | كوميديا |
يمكن تمثيل المعلومات المذكورة أعلاه كمصفوفة متعددة الأبعاد. يوضح الكود أدناه التنفيذ.
<?php $movies = array( "comedy" => array("Pink Panther", "John English", "See no evil hear no evil"), "action" => array("Die Hard", "Expendables"), "epic" => array("The Lord of the rings"), "Romance" => array("Romeo and Juliet") ); print_r($movies); ?>
هنا،
الإخراج:
Array ( [comedy] => Array ( [0] => Pink Panther [1] => John English [2] => See no evil hear no evil ) [action] => Array ( [0] => Die Hard [1] => Expendables ) [epic] => Array ( [0] => The Lord of the rings ) [Romance] => Array ( [0] => Romeo and Juliet ) )
هناك طريقة أخرى لتعريف نفس المصفوفة وهي كما يلي.
<?php $film = array( "comedy" => array( 0 => "Pink Panther", 1 => "John English", 2 => "See no evil hear no evil" ), "action" => array ( 0 => "Die Hard", 1 => "Expendables" ), "epic" => array ( 0 => "The Lord of the rings" ), "Romance" => array ( 0 => "Romeo and Juliet" ) ); echo $film["comedy"][0]; ?>
الإخراج:
Pink Panther
ملاحظة: تم تضمين مصفوفة الأفلام الرقمية داخل مصفوفة الفئات الترابطية.
مصفوفات PHP: Operaالاختصاصات
| المُشغل | الاسم | الوصف | كيف نفعل ذلك | الناتج |
|---|---|---|---|---|
| س + ص | الاتحاد | يجمع عناصر من كلا المصفوفتين |
<?php $x = array('id' => 1); $y = array('value' => 10); $z = $x + $y; ?> |
صفيف([المعرف] => 1 [القيمة] => 10) |
| س == ص | ايكوال | يقارن هذا البرنامج بين مصفوفتين ويعيد القيمة "صحيح" إذا كانتا متساويتين. |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x == $y) { echo "true"; } else { echo "false"; } ?> |
صحيح أو 1 |
| x === y | مطابق | يقارن بين القيمتين أنواع البيانات |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x === $y) { echo "true"; } else { echo "false"; } ?> |
خطأ أو 0 |
| x != y, x <> y | غير متساوي | تُرجع القيمة "صحيح" إذا لم تكن المصفوفتان متساويتين |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x != $y) { echo "true"; } else { echo "false"; } ?> |
خطأ أو 0 |
| x !== y | غير متطابق | تُرجع القيمة "صحيح" إذا لم تكن المصفوفتان متطابقتين في القيمة أو النوع |
<?php $x = array("id" => 1); $y = array("id" => "1"); if($x !== $y) { echo "true"; } else { echo "false"; } ?> |
صحيح أو 1 |
وظائف صفيف PHP
وظيفة العد
تُستخدم دالة العد لحساب عدد العناصر التي تحتويها مصفوفة PHP. يوضح الكود أدناه كيفية تنفيذها.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo count($lecturers); ?>
الإخراج:
3
دالة is_array
تُستخدم الدالة `is_array` لتحديد ما إذا كان المتغير عبارة عن مصفوفة أم لا. لنلقِ نظرة الآن على مثال يُطبّق هذه الدالة.
<?php $lecturers = array("Mr. Jones", "Mr. Banda", "Mrs. Smith"); echo is_array($lecturers); ?>
الإخراج:
1
تصنيف حسب:
تُستخدم هذه الدالة لفرز المصفوفات حسب قيمها.
إذا كانت القيم أبجدية رقمية، فسيتم فرزها حسب الترتيب الأبجدي.
إذا كانت القيم رقمية، فسيتم فرزها بترتيب تصاعدي.
يقوم هذا الإجراء بإزالة مفاتيح الوصول الحالية وإضافة مفاتيح رقمية جديدة.
ناتج هذه الدالة عبارة عن مصفوفة رقمية.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); sort($persons); print_r($persons); ?>
الإخراج:
Array ( [0] => Female [1] => Female [2] => Male )
ksort
تُستخدم هذه الوظيفة لفرز المصفوفة باستخدام المفتاح. يوضح المثال التالي كيفية استخدامها.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); ksort($persons); print_r($persons); ?>
الإخراج:
Array ( [John] => Male [Mary] => Female [Mirriam] => Female )
تشكيلة
هذه وظيفة تُستخدم لفرز المصفوفة باستخدام القيم مع الاحتفاظping المفاتيح. يوضح المثال التالي كيفية استخدامها.
<?php $persons = array("Mary" => "Female", "John" => "Male", "Mirriam" => "Female"); asort($persons); print_r($persons); ?>
الإخراج:
Array ( [Mary] => Female [Mirriam] => Female [John] => Male )
لماذا استخدام المصفوفات؟
- يمكن توسيع محتويات المصفوفات لاستيعاب المزيد من القيم.
- تساعد المصفوفات بسهولة في تجميع المعلومات ذات الصلة مثل تفاصيل تسجيل الدخول إلى الخادم معًا.
- تساعد المصفوفات في كتابة كود أنظف.



