fbpx

تعلم لغة php – الدرس الثالث مصفوفات بسيطة Simple arrays



المصفوفات هي نوع خاص من المتغيرات التي يمكن أن تحتوي على العديد من المتغيرات ، واحتفظ بها في قائمة.

على سبيل المثال ، لنفترض أننا نريد إنشاء قائمة بجميع الأرقام الفردية بين 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
)

الدرس الرابع






Leave a Reply