إضافة عناصر إلى مصفوفة
إذا كان المصفوفة موجودة، فيمكنك إضافة عناصر إضافية إليها. ويتم ذلك مباشرةً باستخدام عامل التعيين (علامة التساوي) بنفس طريقة تعيين قيمة لسلسلة أو رقم. في هذه الحالة، ليس عليك تحديد مفتاح العنصر المضاف، ولكن على أي حال، عند الوصول إلى المصفوفة، تحتاج إلىبين قوسين مربعين
. بإضافة عنصرين جديدين إلى $List، نكتب:
قائمة $ = "الكمثرى";
قائمة $ = "الطماطم";
. بإضافة عنصرين جديدين إلى $List، نكتب:
قائمة $ = "الكمثرى";
إذا لم يتم تحديد المفتاح، فسيتم إضافة كل عنصر إلى المصفوفة الموجودة وفهرسته بالرقم الترتيبي التالي. إذا أضفنا عناصر جديدة إلى المصفوفة من القسم السابق، والتي تحتوي عناصرها على فهارس 1 و 2 و 3، فسيكون للكمثرى فهرس 4، وسيكون للطماطم فهرس 5. عندما تحدد فهرسًا بشكل صريح، وتكون القيمة معه هي موجودة بالفعل، سيتم فقدان القيمة الموجودة في ذلك الموقع واستبدالها بقيمة جديدة:
سنحاول إضافة عناصر جديدة إلى المصفوفة عن طريق إعادة كتابة البرنامج النصي Sops.php. من خلال طباعة العناصر الأصلية للمصفوفة أولاً، ثم العناصر الأصلية مع العناصر المضافة، يمكننا بسهولة رؤية التغييرات التي حدثت.
تمامًا كما يمكنك معرفة طول السلسلة (عدد الأحرف التي تحتوي عليها) باستخدام الدالة strlen()، فمن السهل أيضًا تحديد عدد العناصر في المصفوفة باستخدام الدالة count():
- $HowMany = count($Array); افتح ملف sauces.php بداخله.
- محرر النصوص بعد تهيئة المصفوفة باستخدام الدالة array()، أضف الإدخال التالي:
- ستحدد الدالة count() عدد العناصر الموجودة في مصفوفة $Soups. ومن خلال تعيين هذه القيمة لمتغير، يمكن طباعتها. أضف ثلاثة عناصر إضافية إلى المصفوفة.
- $Soups["Saturday"] = "كريمة البروكلي"; عد العناصر في المصفوفة واطبع هذه القيمة.
- \n");
$HowMany = count($Soups);
طباعة ("يحتوي المصفوفة على عناصر HowMany $.
\n");
$Soups["Thursday"] = "نودلز الدجاج";
$Soups["Friday"] = "طماطم";
$HowManyNow = count($Soups);
طباعة("يحتوي المصفوفة الآن على عناصر $HowManyNow.
احفظ البرنامج النصي (القائمة 7.2)، وقم بتحميله على الخادم واختبره في المتصفح (الشكل).
1
2
3
4
5 باستخدام المصفوفات
6$حساء = مصفوفة(
7 "الاثنين"=>"حساء البطلينوس"،
8 "الثلاثاء"=>"الدجاج الأبيض بالفلفل الحار"،
9 "الأربعاء"=>"نباتي");
11 طباعة ("يحتوي المصفوفة على $HowMany
عناصر.
\n");
12 $Soups["Thursday"] = "نودلز الدجاج";
13 $Soups["Friday"] = "طماطم";
14 $Soups["Saturday"] = "كريمة
بروكلي"؛
15 $HowManyNow = count($Soups);
16 طباعة("يحتوي المصفوفة الآن
عناصر.
17 ?>
18
19
العنصر $HowManyNow. ظهرت في PHP 4.0ميزة جديدة
، والذي يسمح لك بإضافة مصفوفة إلى أخرى. يمكن أيضًا تسمية هذه العملية بدمج أو تسلسل المصفوفات. يتم استدعاء الدالة array_merge() كما يلي:
$NewArray = array_merge($OneArray, $TwoArray);
يمكنك إعادة كتابة صفحة Soups.php باستخدام هذه الوظيفة إذا كنت تعمل على خادم مثبت عليه PHP 4.0.
- دمج صفيفين
- افتح ملف sauces.php في محرر النصوص إذا لم يكن مفتوحًا بالفعل. بعد تهيئة المصفوفة باستخدام الدالة array()، أضف الإدخال التالي:
- الجمع بين صفيفين في واحد. $TheSoups = array_merge($Soups, $Soups2);
- قم بعد عناصر المصفوفة الجديدة واطبع النتيجة. $HowMany3 = count($TheSoups);
- أغلق PHP ومستند HTML. ?>
- احفظ الملف (القائمة 7.3)، وقم بتحميله إلى الخادم واختبره في المتصفح (الشكل).
بعد تهيئة المصفوفة $Soups، قم بعد عناصرها وطباعة النتيجة.
طباعة("يحتوي المصفوفة الآن على عناصر $HowManyNow.
- طباعة("تحتوي مجموعة $Soups على عناصر $HowMany.
"الخميس"=>"نودلز الدجاج"،
"الجمعة"=>"الطماطم"،
"Saturday"=>"كريمة البروكلي");
$HowMany2 = العد($Soups2);
طباعة("تحتوي مجموعة $Soups2 على عناصر $HowMany2.
طباعة("يحتوي المصفوفة الآن على عناصر $HowManyNow.
تأكد من ترتيب المصفوفات بهذا الترتيب (Soups ثم $Soups2)، أي أنه يجب إضافة عناصر الخميس والجمعة إلى عناصر الاثنين الأربعاء، وليس العكس.
طباعة ("تحتوي مجموعة $ TheSoups على
-$HowMany3 عناصر.
طباعة("يحتوي المصفوفة الآن على عناصر $HowManyNow.
القائمة 7.3 الدالة Array_merge() جديدة. هذه إحدى الميزات الإضافية العديدة في PHP 4.0 المصممة للعمل مع المصفوفات. باستخدام المصفوفات يمكنك توفير الكثير من الوقت.
1
2
3
4
5 6 $ حساء = صفيف!
7 "الاثنين"=>"حساء البطلينوس"،
"الثلاثاء"=>"الدجاج الأبيض بالفلفل الحار"،
8 "الأربعاء"=>"نباتي"
9);
10 $HowMany = count($Soups);
11 طباعة ("تحتوي مجموعة $Soups على عناصر HowMany $.
عناصر.
12$Soups2 = المصفوفة(
13 "الخميس"=>"نودلز الدجاج"،
14 "الجمعة"=>"طماطم"،
15 "السبت"=>"كريمة البروكلي"
16); .
17 $HowMany2 = العد($Soups2);
18 طباعة ("تحتوي مجموعة $Soups2 على عناصر $HowMany2.
عناصر.
19 $TbeSoupe = array_merge($Soups, $Soups2);
20 $HowMany3 = العد ($TheSoups) ;
21 طباعة ("تحتوي مجموعة $TheSoups على عناصر .$HowMany3.
عناصر.
22 ?> "
23
24
كن حذرًا عند إضافة عناصر إلى المصفوفة مباشرةً. ويتم ذلك بشكل صحيح على النحو التالي: $Ar ray = "Add This"; iyai$Aggau = "أضف هذا";، ولكنه صحيح هكذا: $Aggau = "أضف هذا";. إذا نسيت وضع الأقواس، فإن القيمة المضافة ستدمر المصفوفة الموجودة، وتحولها إلى سلسلة أو رقم بسيط.
يحتوي PHP 4.0 على العديد من الوظائف الجديدة للعمل مع المصفوفات. ولم يتم مناقشة كل منهم في الكتاب. ومع ذلك، توجد معلومات كاملة حول هذا الموضوع في دليل لغة PHP، والذي يمكن العثور عليه على موقع PHP على الويب. احرص على عدم استخدام الميزات الجديدة الفريدة لـ PHP 4.0 إذا كان خادمك يعمل بنظام PHP 3.x.
PHPيدعم أنواع البيانات العددية والمركبة. سنتناول في هذه المقالة أحد الأنواع المركبة: المصفوفات. المصفوفة عبارة عن مجموعة من قيم البيانات منظمة كمجموعة مرتبة من أزواج القيمة الرئيسية.
تتحدث هذه المقالة عن إنشاء مصفوفة وإضافة عناصر إليها. هناك العديد من الوظائف المضمنة التي تعمل مع المصفوفات PHPلأن المصفوفات شائعة ومفيدة الاستخدام. على سبيل المثال، إذا كنت تريد إرسال بريد إلكتروني إلى أكثر من عنوان بريد إلكتروني واحد، فيمكنك تخزين عناوين البريد الإلكتروني في مصفوفة ثم تكرار المصفوفة، وإرسال الرسائل إلى عنوان البريد الإلكتروني المأخوذ من المصفوفة.
المصفوفات المفهرسة والترابطية
هناك نوعان من المصفوفات في PHP: الفهرس والترابطي. مفاتيح المصفوفة المفهرسة هي أعداد صحيحة تبدأ من 0. يتم استخدام المصفوفات المفهرسة عندما تحتاج إلى موضع محدد في المصفوفة. تتصرف المصفوفات الترابطية كعمودين في الجدول. العمود الأول هو المفتاح الذي يستخدم للوصول إلى القيمة (العمود الثاني).
PHPيقوم بتخزين جميع المصفوفات داخليًا كمصفوفات ترابطية، وبالتالي فإن الفرق الوحيد بين المصفوفات الترابطية والمفهرسة هو ظهور المفاتيح. يتم توفير بعض الوظائف في المقام الأول للاستخدام مع المصفوفات المفهرسة، لأنها تفترض أن المفاتيح الخاصة بك هي أعداد صحيحة تسلسلية تبدأ من 0. في كلتا الحالتين، تكون المفاتيح فريدة - أي أنه لا يمكن أن يكون لديك عنصرين بنفس المفتاح، بغض النظر عما إذا كان المفتاح أم لا عبارة عن سلسلة أو عدد صحيح.
في PHPتحتوي المصفوفات على ترتيب داخلي لعناصرها مستقل عن المفاتيح والقيم، وهناك وظائف يمكن استخدامها لاجتياز المصفوفات بناءً على هذا الترتيب الداخلي.
تعريف العناصر في المصفوفة
يمكنك الوصول إلى قيم محددة من مصفوفة باستخدام اسم المصفوفة متبوعًا بمفتاح العنصر (يسمى أحيانًا الفهرس) بين قوسين معقوفين:
$age["فريد"]; عروض $؛
يمكن أن يكون المفتاح سلسلة أو عددًا صحيحًا. يتم التعامل مع قيم السلسلة كأرقام (بدون الأصفار البادئة) كأعداد صحيحة. هكذا، $صفيفو $صفيف['3']الرجوع إلى نفس العنصر، ولكن $صفيف['03']يشير إلى عنصر آخر. يمكن أيضًا استخدام الأرقام السالبة كمفاتيح، ولكنها لا تحدد المواضع من نهاية المصفوفة، كما في بيرل.
ليس من الضروري كتابة المفتاح بين علامتي الاقتباس. على سبيل المثال، $صفيف['فريد']يحب $arrat.لا يزال يعتبر أسلوب جيد PHPاستخدم علامات الاقتباس دائمًا. إذا كان الفهرس بدون علامات اقتباس، فإن PHP يستخدم قيمة الثابت كفهرس:
تحديد ("الفهرس"، 5)؛ صدى صفيف $؛ // سيُرجع $array، وليس $array["index"];
إذا كنت تريد استبدال رقم في الفهرس، عليك القيام بذلك:
$age["استنساخ$number"]; // سيُرجع، على سبيل المثال $age["Clone5"];
ومع ذلك، لا تقتبس المفتاح في الحالة التالية:
// طباعة غير صحيحة "Hello, $person["name"]"; اطبع "مرحبًا، $person["name"]"; // الطباعة الصحيحة "Hello, $person";
تخزين البيانات في المصفوفات
عند محاولة تخزين قيمة في مصفوفة، سيتم إنشاء المصفوفة تلقائيًا إذا لم تكن موجودة مسبقًا، ولكن عند محاولة استرداد قيمة من مصفوفة لم يتم تعريفها، لن يتم إنشاء المصفوفة. على سبيل المثال:
// لم يتم تعريف العناوين $ حتى الآن echo $addresses; // لا يوجد صدى للعناوين $؛ // لا شيء $addresses = "spam@cyberpromo.net"; صدى عناوين $؛ // طباعة "المصفوفة"
يمكنك استخدام مهمة بسيطة لتهيئة مصفوفة في البرنامج:
$addresses = "spam@cyberpromo.net"; $addresses = "abuse@example.com"; عناوين $ = "root@example.com"; // ...
لقد أعلنا عن مصفوفة فهرس بمؤشرات أعداد صحيحة تبدأ من 0.
المصفوفة الترابطية:
$price["الحشية"] = 15.29; $السعر["العجلة"] = 75.25; $price["الإطار"] = 50.00; // ...
الطريقة الأسهل لتهيئة المصفوفة هي استخدام البنية صفيف ()، الذي يبني مصفوفة من وسيطاته:
$addresses = array("spam@cyberpromo.net", "abuse@example.com", "root@example.com");
لإنشاء مجموعة النقابي باستخدام صفيف(),يستخدم => الرمز الذي يفصل المؤشرات عن القيم:
$price = array("الحشية" => 15.29، "العجلة" => 75.25، "الإطار" => 50.00)؛
انتبه إلى استخدام المسافات والمحاذاة. يمكننا تجميع الكود، لكنه سيكون أقل وضوحًا:
$price = array("Gasket"=>15.29,"Wheel"=>75.25,"Tire"=>50.00);
لإنشاء مصفوفة فارغة، تحتاج إلى استدعاء البناء صفيف ()بدون حجج:
عناوين $ = صفيف () ؛
يمكنك تحديد مفتاح بداية في مصفوفة ثم قائمة القيم. يتم إدخال القيم في المصفوفة بدءاً بالمفتاح ثم زيادتها:
$days = array(1 => "الاثنين"، "الثلاثاء"، "الأربعاء"، "الخميس"، "الجمعة"، "السبت"، "الأحد"); // 2 هو الثلاثاء، 3 هو الأربعاء، وما إلى ذلك.
إذا كان فهرس البداية عبارة عن سلسلة، فستصبح الفهارس اللاحقة أعدادًا صحيحة، بدءًا من 0. لذا فمن المحتمل أن تكون التعليمات البرمجية التالية خطأ:
$whoops = array("Friday" => "Black"، "Brown"، "Green"); // مثل $whoops = array("Friday" => "Black"، 0 => "Brown"، 1 => "Green");
إضافة عنصر جديد إلى نهاية المصفوفة
لإدراج قيم متعددة في نهاية مصفوفة مفهرسة موجودة، استخدم بناء الجملة:
$family = array("Fred", "Wilma"); // $family = "فريد" $family = "الحصى"; // $family = "الحصى"
تفترض هذه البنية أن فهارس المصفوفة هي أرقام وتقوم بتعيين الفهرس الرقمي التالي المتاح للعنصر، بدءًا من 0. إن محاولة إضافة عنصر إلى مصفوفة ترابطية تكون دائمًا خطأً برمجيًا، ولكن PHPسيضيف عناصر جديدة بمؤشرات رقمية (بدءًا من 0) دون إصدار تحذير:
$person = array("name" => "Fred"); // $person["name"] = "فريد"; $شخص = "ويلما"; // $شخص = "ويلما"
في هذه المرحلة، سننتهي من الجزء التمهيدي للعمل مع المصفوفات في PHP. وإنني أتطلع إلى رؤيتك في المقال التالي.
array_pad
يضيف عدة عناصر إلى المصفوفة.
بناء الجملة:
صفيف array_pad (إدخال الصفيف، حجم الوسادة int، قيمة الوسادة المختلطة)
تقوم الدالة array_pad() بإرجاع نسخة من مصفوفة الإدخال التي تمت إضافة العناصر ذات قيم الوسادة إليها، بحيث يكون عدد العناصر في المصفوفة الناتجة هو حجم الوسادة.
إذا كان حجم الوسادة >0، فستتم إضافة العناصر إلى نهاية المصفوفة، وإذا كانت<0 - то в начало.
إذا كانت قيمة Pad_size أقل من العناصر الموجودة في مصفوفة الإدخال الأصلية، فلن تحدث أي إضافة وستقوم الدالة بإرجاع مصفوفة الإدخال الأصلية.
مثال على استخدام الدالة array_pad():
$arr = array(12, 10, 4);
$result = array_pad($arr, 5, 0);
// $result = array(12, 10, 4, 0, 0);
$result = array_pad($arr, -7, -1);
// $result = array(-1, -1, -1, -1, 12, 10, 4)
$result = array_pad($arr, 2, "noop");
// لن يضيف
array_map
تطبيق دالة مخصصة على كافة عناصر المصفوفات المحددة.
بناء الجملة:
صفيف array_map (رد اتصال مختلط، صفيف arr1 [، صفيف ...])
تقوم الدالة array_map() بإرجاع مصفوفة تحتوي على عناصر جميع المصفوفات المحددة بعد المعالجة بواسطة وظيفة رد اتصال المستخدم.
يجب أن يتطابق عدد المعلمات التي تم تمريرها إلى الدالة المعرفة من قبل المستخدم مع عدد المصفوفات التي تم تمريرها إلى array_map().
مثال على استخدام الدالة array_map(): معالجة مصفوفة واحدة
إرجاع $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("مكعب", $a);
print_r($b);
?>
صفيف(
=> 1
=> 8
=> 27
=> 64
=> 125
)
مثال على استخدام الدالة array_map(): معالجة صفائف متعددة
إرجاع "الرقم $n باللغة الإسبانية هو $m";
}
وظيفة Map_Spanish($n, $m) (
صفيف الإرجاع ($n => $m);
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno"، "dos"، "tres"، "cuatro"، "cinco");
$c = array_map("show_Spanish", $a, $b);
print_r($c);
$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>
المثال المعطى سيخرج ما يلي:
// نسخة مطبوعة من $cArray(
=> رقم 1 باللغة الإسبانية - uno
=> رقم 2 باللغة الإسبانية - دوس
=> رقم 3 بالإسبانية - تريس
=> رقم 4 باللغة الإسبانية - كواترو
=> رقم 5 باللغة الإسبانية - سينكو
)
// نسخة مطبوعة من $dArray(
=> المصفوفة
=> أونو
)
=> المصفوفة
=> دوس
)
=> المصفوفة
=> تريس
)
=> المصفوفة
=> كواترو
)
=> المصفوفة
=> سينكو
)
عادةً ما يتم استخدام الدالة array_map() على المصفوفات التي لها نفس الحجم. إذا كانت المصفوفات لها أطوال مختلفة، فسيتم ملء المصفوفات الأصغر بعناصر ذات قيم فارغة.
تجدر الإشارة إلى أنه إذا حددت قيمة فارغة بدلاً من اسم وظيفة المعالجة، فسيتم إنشاء مصفوفة من المصفوفات.
مثال على استخدام الدالة array_map(): إنشاء مصفوفة من المصفوفات
$b = array("واحد"، "اثنان"، "ثلاثة"، "أربعة"، "خمسة");
$c = array("uno"، "dos"، "tres"، "cuatro"، "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
المثال المعطى سيخرج ما يلي:
صفيف(
=> المصفوفة
=> 1
=> واحد
=> أونو
)
=> المصفوفة
=> 2
=> اثنان
=> دوس
)
=> المصفوفة
=> 3
=> ثلاثة
=> تريس
)
=> المصفوفة
=> 4
=> أربعة
=> كواترو
)
=> المصفوفة
=> 5
=> خمسة
=> سينكو
)
الوظيفة مدعومة بواسطة PHP 4 >= 4.0.6، PHP 5
array_pop
استرداد وإزالة العناصر الأخيرة من المصفوفة.
بناء الجملة:
مختلط array_pop(array arr);
تنبثق الدالة array_pop() العنصر الأخير من المصفوفة وتعيده، ثم تقوم بإزالته بعد ذلك. باستخدام هذه الوظيفة يمكننا بناء هياكل تشبه المكدس. إذا كان المصفوفة arr فارغة، أو أنها ليست مصفوفة، فستُرجع الدالة السلسلة الفارغة NULL.
بعد استخدام الدالة array_pop()، يتم ضبط مؤشر المصفوفة على البداية.
مثال على استخدام الدالة array_pop():
$fruits = array_pop($stack);
print_r($مكدس);
print_r($فاكهة);
?>
سيخرج المثال ما يلي:
صفيف(
=> برتقالي
=> موزة
=> تفاحة
)
الوظيفة مدعومة بواسطة PHP 4، PHP 5
array_push
يضيف عنصرًا واحدًا أو أكثر إلى نهاية المصفوفة.
بناء الجملة:
Int array_push(array arr, var1 مختلط [, var2 مختلط, ..])
تضيف الدالة array_push() العناصر var1 وvar2 وما إلى ذلك إلى المصفوفة arr. يقوم بتعيين فهارس رقمية لها - تمامًا كما هو الحال مع معيار .
إذا كنت بحاجة إلى إضافة عنصر واحد فقط، فقد يكون من الأسهل استخدام هذا العامل:
Array_push($Arr,1000); // استدعاء الدالة$Arr=100; // نفس الشيء، ولكن أقصر
مثال على استخدام الدالة array_push():
array_push($stack, "apple", "raspberry");
print_r($مكدس);
?>
سيخرج المثال ما يلي:
صفيف(
=> برتقالي
=> موزة
=> تفاحة
=> التوت
)
يرجى ملاحظة أن الدالة array_push() تتعامل مع المصفوفة على أنها مكدس وتضيف العناصر دائمًا إلى النهاية.
الوظيفة مدعومة بواسطة PHP 4، PHP 5
array_shift
يسترد ويزيل العنصر الأول من المصفوفة.
بناء الجملة:
مختلط array_shift (صفيف آر)
تأخذ الدالة array_shift() العنصر الأول من المصفوفة وتعيده. إنه مشابه جدًا لـ array_pop()،
لكنه يستقبل فقط العنصر الأولي، وليس العنصر الأخير، وينتج أيضًا "تغييرًا" قويًا إلى حد ما للمصفوفة بأكملها: بعد كل شيء، عند استخراج العنصر الأول، عليك ضبط جميع المؤشرات الرقمية لجميع العناصر المتبقية، لأن يتم إزاحة جميع العناصر اللاحقة للمصفوفة بمقدار موضع واحد للأمام. لا تتغير مفاتيح صفيف السلسلة.
إذا كان arr فارغًا أو ليس مصفوفة، فستُرجع الدالة NULL.
بعد استخدام هذه الوظيفة، يتم نقل مؤشر المصفوفة إلى البداية.
مثال على استخدام الدالة array_shift():
$fruit = array_shift($stack);
print_r($مكدس);
?>
سيخرج هذا المثال ما يلي:
صفيف(
=> موزة
=> تفاحة
=> التوت
)
وسيكون للمتغير $fruit القيمة "برتقالية"
الوظيفة مدعومة بواسطة PHP 4، PHP 5
array_unshift
يضيف قيمة واحدة أو أكثر إلى بداية المصفوفة.
بناء الجملة:
Int array_unshift(list arr, mixed var1 [,mixed var2, ...])
تضيف الدالة array_unshift() قيم var التي تم تمريرها إلى بداية المصفوفة arr. يتم الحفاظ على ترتيب العناصر الجديدة في المصفوفة. سيتم تغيير جميع الفهارس الرقمية للمصفوفة بحيث تبدأ من الصفر. جميع فهارس السلسلة الخاصة بالمصفوفة لم تتغير.
تقوم الدالة بإرجاع العدد الجديد من العناصر في المصفوفة.
مثال على استخدام الدالة array_unshift():
array_unshift($queue, "apple", "raspberry");
?>
الآن سيحتوي المتغير $queue على العناصر التالية:
صفيف(
=> تفاحة
=> التوت
=> برتقالي
=> موزة
)
الوظيفة مدعومة بواسطة PHP 4، PHP 5
array_unique
يزيل القيم المكررة في المصفوفة.
بناء الجملة:
صفيف array_unique (صفيف آر)
تقوم الدالة array_unique() بإرجاع مصفوفة مكونة من جميع القيم الفريدة في المصفوفة مع مفاتيحها، عن طريق إزالة كافة القيم المكررة. يتم وضع المفتاح الأول =>أزواج القيمة التي تمت مواجهتها في المصفوفة الناتجة. يتم الحفاظ على الفهارس.
مثال على استخدام الدالة array_unique():
"أخضر"، "أحمر"، "ب" =>
"أخضر"، "أزرق"، "أحمر")؛
print_r(نتيجة $);
?>
سيخرج المثال ما يلي:
صفيف(
[أ] => أخضر
=> أحمر
=> أزرق
)
مثال على استخدام الدالة array_unique(): مقارنة أنواع البيانات
نتيجة $ = array_unique($input);
var_dump($result);
?>
سيخرج المثال ما يلي:
صفيف (2) (
=> كثافة العمليات (4)
=> السلسلة (1) "3"
}
الوظيفة مدعومة بواسطة PHP 4 >= 4.0.1، PHP 5
array_chunk
تقوم الدالة بتقسيم المصفوفة إلى أجزاء.
بناء الجملة:
صفيف array_chunk (صفيف آر، حجم int [، مفاتيح الحفاظ على المنطق])
تقوم الدالة array_chunk() بتقسيم المصفوفة الأصلية إلى عدة صفائف، يتم تحديد طولها حسب حجم الرقم. إذا كان بُعد المصفوفة الأصلية غير قابل للقسمة تمامًا على حجم الأجزاء، فسيكون للمصفوفة النهائية بُعدًا أصغر.
تقوم الدالة array_chunk() بإرجاع مصفوفة متعددة الأبعاد، تبدأ مؤشراتها من 0 إلى عدد المصفوفات الناتجة، والقيم هي المصفوفات التي تم الحصول عليها نتيجة التقسيم.
تحدد المعلمة keep_keys الاختيارية ما إذا كان يجب الاحتفاظ بمفاتيح المصفوفة الأصلية أم لا. إذا كانت هذه المعلمة خاطئة (القيمة الافتراضية)، فسيتم تحديد مؤشرات المصفوفات الناتجة بأرقام تبدأ من الصفر. إذا كانت المعلمة صحيحة، فسيتم الاحتفاظ بمفاتيح المصفوفة الأصلية.
مثال على استخدام الدالة array_chunk():
$array = array("العنصر الأول"،
"العنصر الثاني"
"العنصر الثالث"
"العنصر الرابع"
"العنصر الخامس");
print_r(array_chunk($array, 2));
print_r(array_chunk($array, 2, TRUE));
سيخرج المثال ما يلي:
صفيف(
=> المصفوفة
=> العنصر الأول
=> العنصر الثاني
)
=> المصفوفة
=> العنصر الثالث
=> العنصر الرابع
)
=> المصفوفة
=> العنصر الخامس
)
)
صفيف(
=> المصفوفة
=> العنصر الأول
=> العنصر الثاني
)
=> المصفوفة
=> العنصر الثالث
=> العنصر الرابع
)
=> المصفوفة
=> العنصر الخامس
)
الوظيفة مدعومة بواسطة PHP 4 >= 4.2.0، PHP 5
array_fill
تقوم الدالة بملء المصفوفة بقيم محددة.
بناء الجملة:
صفيف array_fill (int start_index، int num، قيمة مختلطة)
تقوم الدالة array_fill() بإرجاع مصفوفة تحتوي على القيم المحددة في معلمة القيمة ذات الحجم num، بدءًا من العنصر المحدد في المعلمة start_index.
مثال على استخدام array_diff_uassoc():
print_r($a);
?>
سيخرج المثال ما يلي:
صفيف(
=> موزة
=> موزة
=> موزة
=> موزة
=> موزة
=> موزة
)
الوظيفة مدعومة بواسطة PHP 4 >= 4.2.0، PHP 5
array_filter
تطبق الوظيفة عامل تصفية على صفيف باستخدام وظيفة مخصصة.
بناء الجملة:
صفيف array_filter (إدخال الصفيف [، رد الاتصال])
تقوم الدالة array_filter() بإرجاع مصفوفة تحتوي على القيم الموجودة في مصفوفة الإدخال، ويتم تصفيتها وفقًا لنتائج وظيفة رد اتصال المستخدم.
إذا كانت مصفوفة الإدخال عبارة عن مصفوفة ترابطية، فسيتم الاحتفاظ بالمؤشرات في المصفوفة الناتجة.
مثال على استخدام الدالة array_filter():
العودة ($فار % 2 == 1)؛
}
وظيفة حتى($var) (
العودة ($فار % 2 == 0);
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
صدى "غريب: ن" ؛
print_r(array_filter($array1, "odd"));
صدى "حتى: ن"؛
t_r(array_filter($array2, "even"));
?>
سيخرج المثال ما يلي:
غريب: صفيف(
[أ] => 1
[ج] => 3
[ه] => 5
حتى: صفيف(
=> 6
=> 8
=> 10
=> 12
)
تجدر الإشارة إلى أنه بدلاً من اسم وظيفة التصفية، يمكنك تحديد مصفوفة تحتوي على مرجع للكائن واسم الطريقة.
ومن الجدير بالذكر أيضًا أنه عند معالجة مصفوفة باستخدام الدالة array_filter()، لا يمكن تغييرها: إضافة عناصر أو حذفها أو إعادة تعيين المصفوفة، لأن فقد يؤدي ذلك إلى تشغيل الوظيفة بشكل غير صحيح.
الوظيفة مدعومة بواسطة PHP 4 >= 4.0.6، PHP 5
دعونا نلقي نظرة على طرق كتابة القيم في المصفوفة. يمكن تعديل المصفوفة الموجودة عن طريق تحديد القيم فيها بشكل صريح. يتم ذلك عن طريق تعيين قيم لمصفوفة.
عملية إسناد قيمة لعنصر مصفوفة هي نفس عملية إسناد قيمة لمتغير، باستثناء الأقواس المربعة () التي تضاف بعد اسم متغير المصفوفة. تتم الإشارة إلى فهرس/مفتاح العنصر بين قوسين معقوفين. إذا لم يتم تحديد فهرس/مفتاح، فستقوم PHP تلقائيًا بتحديد أصغر فهرس رقمي غير مشغول.
"صفر"، 1 => "واحد")؛
$my_arr = "اثنين";
لتغيير قيمة معينة، ما عليك سوى تعيين قيمة جديدة لعنصر موجود. لإزالة أي عنصر من عناصر المصفوفة باستخدام الفهرس/المفتاح الخاص بها أو إزالة المصفوفة نفسها بالكامل، استخدم الدالة unset() :
ملاحظة: كما ذكرنا سابقًا، إذا تمت إضافة عنصر إلى مصفوفة دون تحديد مفتاح، فستستخدم PHP تلقائيًا أكبر قيمة لمفتاح عدد صحيح سابق بزيادة قدرها 1. إذا لم تكن هناك فهارس أعداد صحيحة في المصفوفة حتى الآن، فسيكون المفتاح 0 (صفر).
لاحظ أن أكبر قيمة عددية للمفتاح لا يوجد بالضرورة في المصفوفة في الوقت الحاليقد يكون هذا بسبب إزالة عناصر المصفوفة. بعد إزالة العناصر، لا تتم إعادة فهرسة المصفوفة. ولنأخذ المثال التالي حتى يتضح الأمر أكثر:
"; print_r($my_arr); // أضف العنصر (لاحظ أن المفتاح الجديد سيكون 3 بدلاً من 0). $my_arr = 6; echo "
"; print_r($my_arr); // إعادة الفهرسة: $my_arr = array_values($my_arr); $my_arr = 7; echo "
"؛ print_r($my_arr); ?>
استخدم هذا المثال وظيفتين جديدتين، print_r() وray_values(). تقوم الدالة array_values() بإرجاع مصفوفة مفهرسة (تعيد فهرسة المصفوفة التي تم إرجاعها بمؤشرات رقمية)، وتعمل الدالة print_r مثل var_dump ولكنها تقوم بإخراج المصفوفات في شكل أكثر قابلية للقراءة.
الآن يمكننا أن ننظر إلى الطريقة الثالثة لإنشاء المصفوفات:
أظهر المثال طريقة ثالثة لإنشاء مصفوفة. إذا لم يتم إنشاء المصفوفة $weekdays بعد، فسيتم إنشاؤها. ومع ذلك، لا يوصى بهذا النوع من إنشاء المصفوفة لأنه إذا تم بالفعل إنشاء المتغير $weekdays ويحتوي على قيمة، فقد يتسبب ذلك في نتائج غير متوقعة من البرنامج النصي.
إذا كان لديك شك حول ما إذا كان المتغير عبارة عن مصفوفة، فاستخدم الدالة is_array. على سبيل المثال، يمكن إجراء الفحص على النحو التالي:
"; $no = "سلسلة عادية"; echo is_array($no) ? "Array" : "ليست مصفوفة"; ?>
هناك العديد من الوظائف والعوامل لتحويل المصفوفات في PHP: مجموعة من الوظائف للعمل مع المصفوفات
هناك عدة طرق لإضافة مصفوفة إلى مصفوفة باستخدام PHP ويمكن أن تكون جميعها مفيدة في حالات معينة.
"المشغل +"
هذه طريقة بسيطة ولكنها ماكرة:
$ج = $أ + $ب
بهذه الطريقة، تتم إضافة المفاتيح غير الموجودة بالفعل في المصفوفة $a فقط. في هذه الحالة، يتم إلحاق العناصر بنهاية المصفوفة.
بمعنى، إذا كان المفتاح من المصفوفة $b غير موجود في المصفوفة $a، فسيتم إضافة عنصر بهذا المفتاح إلى المصفوفة الناتجة.
إذا كانت المصفوفة $a تحتوي بالفعل على عنصر بمثل هذا المفتاح، فستبقى قيمته دون تغيير.
بمعنى آخر، يؤدي تغيير أماكن المصطلحات إلى تغيير المجموع: $a + $b != $b + $a - وهذا أمر يستحق التذكر.
والآن إليك مثال أكثر تفصيلاً لتوضيح ذلك:
$arr1 = ["a" => 1, "b" => 2]; $arr2 = ["b" => 3, "c" => 4]; var_export($arr1 + $arr2); //صفيف (// "a" => 1, // "b" => 2, // "c" => 4, //) var_export($arr2 + $arr1); //مصفوفة (// "b" => 3, // "c" => 4, // "a" => 1, //)
وظيفة array_merge()
يمكنك استخدام هذه الوظيفة على النحو التالي:
نتيجة $ = array_merge($arr1, $arr2)
يقوم بإعادة تعيين المؤشرات الرقمية واستبدال المؤشرات النصية. رائعة لتسلسل صفيفين أو أكثر باستخدام فهارس رقمية:
إذا كانت صفائف الإدخال تحتوي على نفس مفاتيح السلسلة، فستحل كل قيمة لاحقة محل القيمة السابقة. ومع ذلك، إذا كانت المصفوفات تحتوي على نفس المفاتيح الرقمية، فلن تحل القيمة المذكورة أخيرًا محل القيمة الأصلية، ولكن ستتم إضافتها إلى نهاية المصفوفة.
وظيفة array_merge_recursive
يفعل نفس الشيء مثل array_merge إلا أنه يمر بشكل متكرر عبر كل فرع من فروع المصفوفة ويفعل الشيء نفسه مع الأطفال.
وظيفة array_replace()
يستبدل عناصر المصفوفة بعناصر من المصفوفات التي تم تمريرها.
الدالة array_replace_recursive()
مثل array_replace ولكنه يعالج جميع فروع المصفوفة.