المصفوفات هي نوع خاص من المتغيرات التي يمكن أن تحتوي على العديد من المتغيرات ، واحتفظ بها في قائمة.
على سبيل المثال ، لنفترض أننا نريد إنشاء قائمة بجميع الأرقام الفردية بين 1 و 10. بمجرد إنشاء القائمة ، يمكننا تعيين متغيرات جديدة تشير إلى متغير في الصفيف ، باستخدام index of the variable.
لاستخدام المتغير الأول في القائمة (في هذه الحالة الرقم 1) ، سنحتاج إلى إعطاء index الأول ، وهو 0 ، نظرًا لأن PHP يستخدم صفرًا من المؤشرات القائمة ، مثل جميع لغات البرمجة اليوم تقريبًا.
$odd_numbers = [1,3,5,7,9]; $first_odd_number = $odd_numbers[0]; $second_odd_number = $odd_numbers[1]; echo "The first odd number is $first_odd_number\n"; echo "The second odd number is $second_odd_number\n";
يمكننا الآن إضافة متغيرات جديدة باستخدام index. لإضافة عنصر إلى نهاية القائمة ، يمكننا تعيين الصفيف مع index 5 (المتغير السادس):
$odd_numbers = [1,3,5,7,9]; $odd_numbers[5] = 11; print_r($odd_numbers);
يمكن أن تحتوي المصفوفات على أنواع مختلفة من المتغيرات وفقًا لاحتياجاتك ، ويمكن أن تحتوي أيضًا على صفائف أو كائنات أخرى كأعضاء.
لحذف عنصر من مصفوفة ، استخدم الدالة unset على العضو نفسه. فمثلا:
$odd_numbers = [1,3,5,7,9]; unset($odd_numbers[2]); // سيزيل البند الثالث (5) من القائمة print_r($odd_numbers);
وظائف مفيدة
تقوم دالة count بإرجاع عدد الأعضاء في مصفوفة.
$odd_numbers = [1,3,5,7,9]; echo count($odd_numbers);
تحصل وظيفة reset على العضو الأول من المصفوفة. (كما يعيد تعيين مؤشر التكرار الداخلي).
$odd_numbers = [1,3,5,7,9]; $first_item = reset($odd_numbers); echo $first_item;
يمكننا أيضًا استخدام بنية index للحصول على العضو الأول في المصفوفة ، كما يلي:
$odd_numbers = [1,3,5,7,9]; $first_item = $odd_numbers[0]; echo $first_item;
تحصل دالة النهاية على آخر عضو في المصفوفة.
$odd_numbers = [1,3,5,7,9]; $last_item = end($odd_numbers); echo $last_item;
يمكننا أيضًا استخدام الدالة count للحصول على عدد العناصر في القائمة ، ثم استخدامها للإشارة إلى المتغير الأخير في الصفيف. لاحظ أننا نطرح واحدًا من index الأخير لأن المؤشرات تكون صفرًا في PHP ، لذلك نحتاج إلى إصلاح حقيقة أننا لا نحسب الرقم المتغير صفر.
$odd_numbers = [1,3,5,7,9]; $last_index = count($odd_numbers) - 1; $last_item = $odd_numbers[$last_index]; echo $last_item;
وظائف المكدس وقائمة الانتظار
يمكن استخدام المصفوفات كمدرجات وقوائم انتظار أيضًا.
لدفع عضو إلى نهاية المصفوفة ، استخدم الدالة array_push:
$numbers = [1,2,3]; array_push($numbers, 4); // المصفوفة الآن هي [1،2،3،4]; // اطبع المصفوفة الجديدة print_r($numbers);
لإخراج عضو من نهاية المصفوفة ، استخدم الدالة array_pop:
$numbers = [1,2,3,4]; array_pop($numbers); // المصفوفة الآن هي [1،2،3]; // اطبع المصفوفة الجديدة print_r($numbers);
لدفع عضو إلى بداية مصفوفة ، استخدم الدالة array_unshift:
$numbers = [1,2,3]; array_unshift($numbers, 0); // المصفوفة الآن هي [1،2،3]; // اطبع المصفوفة الجديدة print_r($numbers);
لإخراج عضو من بداية المصفوفة ، استخدم الدالة array_shift:
$numbers = [0,1,2,3]; array_shift($numbers); // المصفوفة الآن هي [1،2،3]; // اطبع المصفوفة الجديدة print_r($numbers);
مصفوفات تسلسلية
يمكننا استخدام array_merge للتسلسل بين مصفوفتين:
$odd_numbers = [1,3,5,7,9]; $even_numbers = [2,4,6,8,10]; $all_numbers = array_merge($odd_numbers, $even_numbers); print_r($all_numbers);
مصفوفات الفرز
يمكننا استخدام وظيفة sort لفرز المصفوفات. تقوم دالة rsort بفرز الصفائف في الاتجاه المعاكس. لاحظ أن الفرز يتم على صفيف الإدخال ولا يعيد صفيف جديد.
$numbers = [4,2,3,1,5]; sort($numbers); print_r($numbers);
وظائف المصفوفة المتقدمة
تعرض الدالة array_slice صفيفًا جديدًا يحتوي على جزء معين من صفيف معين من الإزاحة. على سبيل المثال ، إذا أردنا تجاهل العناصر الثلاثة الأولى من المصفوفة ، يمكننا القيام بما يلي:
$numbers = [1,2,3,4,5,6]; print_r(array_slice($numbers, 3));
يمكننا أيضًا أن نقرر أخذ شريحة بطول محدد. على سبيل المثال ، إذا أردنا أخذ عنصرين فقط ، يمكننا إضافة وسيطة أخرى إلى الوظيفة:
$numbers = [1,2,3,4,5,6]; print_r(array_slice($numbers, 3, 2));
تعمل دالة array_splice بالطريقة نفسها تمامًا ، إلا أنها ستزيل أيضًا الشريحة التي تم إرجاعها من الصفيف الأصلي (في هذه الحالة ، the numbers variable).
$numbers = [1,2,3,4,5,6]; print_r(array_splice($numbers, 3, 2)); print_r($numbers);
تمرين
قم بإنشاء مصفوفة جديدة تحتوي على الأرقام الزوجية 2،4،6،8 و 10. يجب أن يكون اسم المصفوفة الجديدة $even_numbers
.
قم بتسلسل مصفوفة male_names
و female_names لإنشاء مصفوفة الأسماء
<?php // TODO: أضف المصفوفة الزوجية هنا $male_names = ["Ahmad", "Hicham", "Yacine"]; $female_names = ["Maissa", "Walid", "Amel"]; // TODO: ضم أسماء الذكور والإناث إلى مصفوفة واحدة $names = NULL; print_r($even_numbers); print_r($names); ?>
الحل
<?php // TODO: أضف المصفوفة الزوجية هنا $even_numbers = [2,4,6,8,10]; $male_names = ["Ahmad", "Hicham", "Yacine"]; $female_names = ["Maissa", "Walid", "Amel"]; // TODO: ضم أسماء الذكور والإناث إلى مصفوفة واحدة $names = array_merge($male_names, $female_names); print_r($even_numbers); print_r($names); ?>
سنحصل على النتيجة التالية عند التشغيل
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) Array ( [0] => Ahmad [1] => Hicham [2] => Yacine [3] => Maissa [4] => Walid [5] => Amel )