recent
أخبار ساخنة

المصفوفة المترابطة Associative في لغة PHP الدرس |9|

الصفحة الرئيسية
Arrays Associative php

المصفوفة المترابطة Array Associative في PHP

المصفوفات المترابطة Associative في لغة البرمجة php, في الدرس السابق تعرّفنا على المصفوفات من نوع index array. و عرفنا كيف يتم تشغيل هذا النوع من المصفوفات وطريقة إستحضار هذا النوع.

ويجب متابعة الدرس السابق قبل قراءة الدرس حتى تفهم جميع أنواع المصفوفات بشكل جيد.

هذا النوع من المصفوفات يأخذ مفتاح و قيمة أي انها key : value.

النوع الأول هو indexed array يتم فقط تحديد القيمة value فقط و بناءً على ذلك يتم تحديد المفتاح., لكن في ذلك النوع يتم إعطاء قيمة للمفتاح او اسم لكن يجب أن يكون من نوع ارقام int او نصوص string.

 

أمثلة للتعامل مع المصفوفات المترابطة Associative في لغة PHP

المصفوفة المترابطة Arrays Associative, لنفترض أنك طالب تدرس في جامعة القاهرة في مجال البرمجة وتأخذ مجموعة من اللغات وتريد أن يتم تحديد مستواك في كل لغة.

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
     );
?>

قمنا بإنشاء مصفوفة تحتوي على بعض اللغات التي يقدمها هذا الموقع مع تحديد نسبة مستواك لكل لغة.

في البداية تحدثنا بأن هذا النوع من المصفوفات يكون له مفتاح و قيمة و ذلك المفتاح هو أسماء اللغات التي تتعلمها في هذا الموقع.

أما بالنسبة للقيمة هذه نسبة تعليمك و مستواك لكل لغة.

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
     );
    foreach ($langs as  $kaissar)
    {
        echo   $kaissar ;
    };
?>

قمنا بإنشاء foreach لتقوم بعمل دوران على القيم الموجودة داخل Array.

ثم قمنا بإنشاء متغير بإسم kaissar الذي سوف يبحث في ما يحتويه. المتغير langs ثم سيقوم بطباعة الدوران وسيكون الناتج على السرفر.

50%60%30%70%80%

لكن الآن الصورة ليست جيدة دعونا نقوم بطباعة الإخراج داخل قائمة غير مرتبه وسيكون الكود. او الشفرة البرمجية بذلك الشكل.

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
     );
     echo "<ul>";
    foreach ($langs as  $kaissar)
    {
        echo "<li>" . $kaissar ."</li>";
    };
    echo "<ul>";
?>

عند التشغيل سيكون الناتج في السيرفر بالشكل

  • 50%
  • 60%
  • 30%
  • 70%
  • 80%

لكن الآن foreach قامت بطبع القيمة فقط ولم اعرف ما هي العناصر الذي تحتوي .على تلك القيمة لنقوم بتطوير الكود ليقوم بطبع العنصر والقيمة الذي يحملها.

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
     );
     echo "<ul>";
    foreach ($langs as $programmer =>  $kaissar)
    {
        echo "<li>" . $kaissar ." => ".$programmer . "</li>";
    };
    echo "<ul>";
?>

قمنا بإستخدام foreach لتقوم بعمل دوران على القيمة و المفتاح value and key هذا ما تفعله foreach . عن الدوران الأخرى لأنها تحتوي على قيمة و مفتاح.

قمنا بإنشاء متغير بإسم programmer ليبحث داخل العنصر في المصفوفة وكما قمنا بإنشاء متغير آخر. بإسم kaissar ليبحث داخل القيمة وسيكون الناتج على السيرفر بالشكل.

  • 50% => html5
  • 60% => css3
  • 30% =>javascript
  • 70% =>php
  • 80% => python

الآن السؤال هنا كيف يمكنني إضافة عنصر جديد؟ يمكنك إضافة العنصر الجديد بذلك الشكل

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
     );
     $langs{"mysql"}="88%";
     echo "<ul>";
    foreach ($langs as $programmer =>  $kaissar)
    {
        echo "<li>" . $kaissar ." => ".$programmer . "</li>";
    };
    echo "<ul>";
?>

قمنا بإضافة عنصر جديد بإسم mysql + القيمة 88% لكن لآحظ كيف قمنا بإسناد قيمة او عنصر داخل المتغير lange من خلال الأقواس.

نقول للمفسر الخاص في php قم بإنشاء او بإسناد قيمة على محتويات او قيم المتغير lange من نوع array.

ويفهم هنا المفسر أن هذا نوع من انواع البيانات من array لكن لآحظ معي قمت داخل. الأقواس بتسمية العنصر الذي هو mysql وسيكون الناتج على السيرفر بالشكل.

  • 50% => html5
  • 60% => css3
  • 30% =>javascript
  • 70% =>php
  • 80% => python
  • 88% =>mysql

لكن ماذا اذا لم اضع اسم العنصر داخل الأقواس.

هنا سيفهم المفسر ان هذا النوع من البيانات هو array لكن. من نوع indexed array وسيتم إضافة اسم العنصر بالترتيب من 0 إلى & دعونا نفعل ذلك الآن.

<?php
    $langs = array
    (
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
    );
     $langs[]="88%";
     $langs[]="78%";
     $langs[]="84%";
     echo "<ul>";
    foreach ($langs as $programmer =>  $kaissar)
    {
        echo "<li>" . $kaissar ." => ".$programmer . "</li>";
    };
    echo "<ul>";
?>

سوف يفهم الآن المفسر أن هذا النوع من البيانات هو array indexed وسيقوم بتسمية العناصر لوحده.

وسيكون الناتج في السيرفر بالشكل

  • 50% => html5
  • 60% => css3
  • 30% =>javascript
  • 70% =>php
  • 80% => python
  • 88% => 0
  • 78% => 1
  • 84% => 2

نأتي الآن إلى انواع البيانات الأخرى الذي يمكن إضافتها داخل المصفوفة. وهي null وتعني قيمة فارغة و True وتعني 1 false وتعني 0 وسيكون المثال بذلك الشكل.

<?php
    $langs = array
    (
         null     =>   "53",
         true     =>    "54",
         false    =>   "55",
        "html5"                 => "50%",
        "css3"                    => "60%",
        "javascript"           => "30%",
        "php"                     => "70%",
        "python"                => "80%",
    );
     echo "<ul>";
    foreach ($langs as $programmer =>  $kaissar)
    {
        echo "<li>" . $kaissar ." => ".$programmer . "</li>";
    };
    echo "<ul>";
?>


google-playkhamsatmostaqltradent