English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس PHP الأساسية

دروس PHP متقدمة

PHP & MySQL

دليل PHP

المجموعات PHP

في هذا الدرس، ستتعلم كيفية تخزين القيم المتعددة في متغير واحد في PHP.

ما هو مصفوفة PHP

الصفوف هي متغيرات معقدة تسمح لك بتخزين عدة قيم أو مجموعة من القيم تحت اسم متغير واحد. افترض أنك ترغب في تخزين الألوان في سكربت PHP، فإن تخزين الألوان بشكل فردي في المتغيرات قد يكون كالتالي:

<?php
$color1 = \"Red\";
$color2 = \"Green\";
$color3 = \"Blue\";
echo $color1;
echo \"<br>\";
echo $color2;
echo \"<br>\";
echo $color3;
?>
الاختبار لرؤية‹/›

لكن إذا كنت ترغب في تخزين أسماء الولايات أو المدن لدول معينة، فإن هذا قد يكون أكثر من ثلاثة وربما مئة. من الصعب جدًا تخزين اسم كل مدينة في متغير منفرد، وهو أمر سيء وغير مفيد. تبدأ المصفوفة هنا في العمل.

أنواع المصفوفات في PHP

يمكنك إنشاء ثلاثة أنواع من المصفوفات. وهي:

  • المصفوفة المرتبطة ـ تحتوي على مفاتيح رقمية.

  • المصفوفة المرتبطة ـ تتضمن مصفوفة تحتوي على كل مفتاح له قيمة محددة.

  • البنية المترابطة متعددة الأبعاد ـ تتضمن مجموعة من المصفوفات.

المصفوفة المرتبطة

تخزن المصفوفة المرتبطة أو المصفوفة الرقمية كل عنصر من العناصر التي تحتوي على معرفات رقمية. يظهر المثال التالي طريقتين لإنشاء مصفوفة مرتبطة، الأسهل منها:

<?php
//تحديد مصفوفة مرتبطة
$colors = array(\"Red\", \"Green\", \"Blue\");
// طباعة بنية البنية المترابطة
print_r($colors);
?>
الاختبار لرؤية‹/›

ملاحظة:في المصفوفة المرتبطة أو المصفوفة الرقمية، يتم تخصيص الأنماط تلقائيًا من 0، ويمكن أن تكون القيم من أي نوع بيانات.

هذا يساوي المثال التالي، حيث تم تخصيص الأنماط يدويًا:

<?php
$colors[0] = \"Red\"; 
$colors[1] = \"Green\"; 
$colors[2] = \"Blue\"; 
// طباعة بنية البنية المترابطة
print_r($colors); 
?>
الاختبار لرؤية‹/›

المصفوفة المرتبطة

في المصفوفة المرتبطة، يمكن أن يكون المفتاح المخصص للقيمة مرناً ويمكن تحديده من قبل المستخدم. في المثال التالي، يستخدم النص بدلاً من الرقم كمعرف في المصفوفة:

<?php
//تحديد مصفوفة مرتبطة
$ages = array(\"Peter\"=>22, \"Clark\"=>32, \"John\"=>28);
// طباعة بنية البنية المترابطة
print_r($ages); 
?>
الاختبار لرؤية‹/›

النموذج التوضيحي أدناه مساوٍ للنموذج التوضيحي السابق، ولكن يظهر طريقة أخرى لإنشاء مصفوفة مرتبطة:

<?php
$ages[\"Peter\"] = \"22\";
$ages[\"Clark\"] = \"32\";
$ages["John"] = "28";
// طباعة بنية البنية المترابطة
print_r($ages);
?>
الاختبار لرؤية‹/›

البنية المترابطة متعددة الأبعاد

البنية المترابطة متعددة الأبعاد هي بنية متعددة الأبعاد، حيث يمكن أن يكون كل عنصر في البنية المترابطة بنية مترابطة أخرى، ويمكن أن تكون كل عنصر في البنية المترابطة المدمجة بنية مترابطة أخرى، وبهذا الشكل. مثال على بنية متعددة الأبعاد يظهر أدناه:

<?php
// تعريف بنية متعددة الأبعاد
$contacts = array (
    البنية المترابطة (
        "name" => "Peter Parker",
        "email" => "[email protected]",
    ),
    البنية المترابطة (
        "name" => "Clark Kent",
        "email" => "[email protected]",
    ),
    البنية المترابطة (
        "name" => "Harry Potter",
        "email" => "[email protected]",
    )
);
// الوصول إلى القيمة المدمجة
echo "البريد الإلكتروني لـ بيتير باركر هو: " . $contacts[0]["email"];
?>
الاختبار لرؤية‹/›

عرض بنية وقيم البنية المترابطة

يمكنك استخدام جملة واحدة من var_dump() أو print_r() لعرض بنية وقيم أي بنية مترابطة. ولكن يقدم جملة print_r() معلومات أقل. انظر إلى المثال التالي:

<?php
// تعريف البنية المترابطة
$cities = array("London", "Paris", "New York");
 
// عرض بنية البنية المترابطة
print_r($cities);
?>
الاختبار لرؤية‹/›

يقدم جملة print_r() الإخراج التالي:

البنية المترابطة ( [0] => London [1] => Paris [2] => New York )

يظهر هذا الإخراج مفتاح كل عنصر وقيمته في البنية المترابطة. للحصول على معلومات إضافية، استخدم الجملة التالية:

<?php
// تعريف البنية المترابطة
$cities = array("London", "Paris", "New York");
 
// عرض بنية البنية المترابطة
var_dump($cities);
?>
الاختبار لرؤية‹/›

يقدم جملة var_dump() الإخراج التالي:

البنية المترابطة(3) { [0]=> string(6) "London" [1]=> string(5) "Paris" [2]=> string(8) "New York" }

إلى جانب المفتاح والقيمة، يظهر هذا الإخراج نوع بيانات كل عنصر، مثل 字符ية تحتوي على 6 أحرف. فيالفصل التالي،ستتعلم كيفية ترتيب عناصر البنية المترابطة.

فيفصل الدوراتفي هذا الفصل، ستتعلم كيفية استدعاء قيم البنية المترابطة.