recent
أخبار ساخنة

المصفوفة متعددة الأبعاد Multidimensional في لغة PHP الدرس|10|

الصفحة الرئيسية
Multidimensional PHP

المصفوفات متعددة الأبعاد Multidimensional في PHP

مصفوفة Multidimensional المصفوفة متعددة الأبعاد في لغة البرمجة PHP, في الدروس السابقة تعرفنا علي مجموعة من انواع المصفوفات Array وهي Associative Array و Indexed Array.

و تعرّفنا على كل نوع من أنواع array ماذا يفعل, لكن في هذا الدرس سوف نتعرف على النوع الثالث و هو Multidimensional Array أي المصفوفات متعددة الأبعاد.


ماهي المصفوفة متعددة الأبعاد في PHP

هي عبارة عن مصفوفة يمكننا إنشاء بداخلها مجموعة من المصفوفات مثل Indexed Array and Associative Array.

في الدروس السابقة كان لا يمكن فعل هذا مع indexed Array أو Associative Array.

حيث كانت كل واحدة منهم مختصة بشيئ, كان يمكن إنشاء مصفوفه داخلها مصفوفه من indexed Array وكذلك الأمر كان ينفع مع النوع الثاني و هو Assocarive Array.

وكان لا يمكن أن يحدث العكس وهو الذي داخل indexed Array داخل Assocative Array.

لكن يمكن أن يحدث هذا مع Array Multidimensional لنأخذ بعض الأمثلة على هذا النوع و نتعرف كيف يعمل.

 

الصيغة العامة لكتابة مصفوفة Multidimensional في لغة PHP

[3] Array Multidimensional
    Syntax :
    array(
        array( Element , Element , Element),
        array( Element , Element , Element ),
        array( Element , Element , Element ),
        );

مثال 1

<?php
$Array = array(
    array("Python" , "Java" , "C#"),
    array("html", "html5", "css3"),
    array("Java network", "python network", "c#network"),
    array("html index", "html5 index", "css3 style index.1.2"),
    array("python information security", "java information security", "c# information security"),
    );
    echo "<pre>";
    print_r($Array);
    echo "</pre>";
?>

قمنا بإنشاء مصفوفة داخل متغير بإسم Array و بها مجموعة من المصفوفات الفرعية بداخلها.

لنفرض أن المصفوفة ستكون الدورات الذي سيقدمها موقعنا خلال الأيام الخمس القادمة.

تحمل المصفوفة الفرعية رقم 0 اللغات التي سوف نقدمها في اليوم الأول و هي #Python And Java And C.

في اليوم الثاني سنقدم اللغات Html And Html5 And Css3 ثم سيستخدم الموقع تلك اللغات المذكورة في المصفوفة. رقم 0 في الشبكات و سيتم إستخدام python في الشبكات وكذلك java و #C.

اظن انكم فهمتوا الطريقة, لآحظوا عند طبع جميع محتويات المصفوفة الرئيسية. و كما نعرف أنها بإسم Array و بإستخدام print_r يمكن طبع المصفوفة.

ناتج كود مصفوفة Multidimensional


مصفوفة رئيسية تحمل مجموعة من المصفوفات الفرعية, كما يمكن طبع شيئ معين من داخل المصفوفات الفرعية لأن كل مصفوفة فرعية لها رقم.

لنفترض أننا نريد طبع دورة html index الموجودة داخل المصفوفة الفرعية رقم 3 و html index عنصر رقم 0 كما تشاهدوا في الصورة.

يمكن الطباعة من خلال الكود [echo $Array[3][0, لآحظوا تحدثوا مع الكود بالضبط كأنكم تتحدثون مع أحد اصدقائكم.

قلت له إطبع من داخل المصفوفة الرئيسية المصفوفة الفرعية التي رقمها 3 و من داخل المصفوفة الفرعية إطبع العنصر رقم 0 الذي هو html index.

لكن إلى الآن المثال لم يكن معقد هذا فقط مصفوفة داخل مصفوفة, لنقوم بتعقيد المثال اكثر من خلال مثال آخر.

مثال 2

لنفترض على سبيل المثال الدورات المذكورة داخل المصفوفة الفرعية رقم 3 الذي بها html index و html5 index و css3 style index.1.2.

و نريد أن نذكر فريق العمل الذي يعمل على تلك الدورات داخل مصفوفة بها مجموعة من المصفوفات الفرعية.

يعني سيكون مصفوفة فرعية داخل مصفوفه فرعية اخرى و ستكون تلك المصفوفة لها صلاحيات. معينة عن المصفوفات الفرعية الذي بداخلها.

و سيكون فريق العمل الذي يقدم تلك الدورات هم Ali و Ahmed و date و kaissar و lana و spider.

<?php
$Array = array(
    array("Python" , "Java" , "C#"),
    array("html", "html5", "css3"),
    array("Java network", "python network", "c#network"),
    array("html index", "html5 index", "css3 style index.1.2"),
    array(
             array("Ahmed", "Ali", "Data"),
             array("ksaissar", "lana", "spider"),
          ),
    array("python information security", "java information security", "c# information security"),
    );
    echo "<pre>";
    print_r($Array);
    echo "</pre>";
?>

شاهد كيف تم تنفيذ العملية و نحن نعرف الآن بأن المصفوفة رقم 4 بها مصفوفات فرعية ايضاً.

هنا يكون بها مصفوفة فرعية رقم 0 و بها عناصر و ايضاً يوجد مصفوفة اخرى رقمها 1 و بها عناصر. و نحن الآن نريد أن نقوم بطبع spider الموجود داخل المصفوفة الفرعية. رقم 1 و المصفوفة الفرعية رقم 4 دخل مصفوفة رئيسية بإسم Array.

و سيكون كود الطبع [echo $Array[4[[1][2.

ناتج كود مصفوفة متعددة Multidimensional 2

 

كما يمكن إنشاء مصفوفة فرعية داخل مصفوفة فرعية في أي مكان داخل المصفوفة الرئيسية.

لكن لي الان نحن نتعامل مع indexed Array وهي بنا ناخذ مثال عن كيفية انشاء مصفوفة من نوع Associative Array.

مثال 3

<?php
$Array = array(
    'Dey 1' =>array("Python" , "Java" , "C#"),
    'Dey 2' =>array("html", "html5", "css3"),
    'Dey 3' =>array("Java network", "python network", "c#network"),
    'Dey 4' =>array("html index", "html5 index", "css3 style index.1.2"),
    'Dey 5' =>array("python information security", "java information security", "c# information security"),
    );
    echo "<pre>";
    print_r($Array);
    echo "</pre>";
?>

في الكود لم يتغير شيئ سوى نوع المصفوفة و قمنا بتحويل المصفوفة من نوع Indexed Array إلى Associative Array.

و سيكون شكل المصفوفة بعد الطباعة.

ناتج كود مصفوفة متعددة الأبعاد Multidimensional 3

وكما يمكن أن تقوم بطبع أي عنصر من داخل أي مصفوفة على سبيل المثال نريد طبع عنصر html5 من داخل مصفوفة Dey 2.

و سيكون شكل العملية أثناء طبع العنصر [echo $Array ['Dey 2'][0.

لنقوم بإنشاء مصفوفات فرعية داخل كل مصفوفة و تلك المصفوفات ستكون أسماء الأشخاص الذي يقدمون كل دورة منهم.

<?php
$Array = array(
    'Dey 1' =>array("Python" , "Java" , "C#", array(
                       'python' => 'kissar',
                       'java' => 'data',
                       'python' => 'saja'
                       )),
    'Dey 2' =>array("html", "html5", "css3",array(
                      'html' => 'kissar',
                      'html5' => 'Ali',
                      'css3' => 'Spider'
                      )),
    'Dey 3' =>array("Java network", "python network", "c# network",array(
                     'Java network' => 'Yosef',
                     'python network' => 'ibrahim',
                     'c# network' => 'muhammad'
                     )),
    'Dey 4' =>array("html index", "html5 index", "css3 style index.1.2"(
                     'html index' => 'mhammad',
                     'html5 index' => 'salah',
                     'css3 style index.1.2' => 'kamal'
                     )),
    'Dey 5' =>array("python information security", "java information security", "c# information security",array(
                   'python information security' => 'parrot',
                   'java information security' => 'wzer',
                   'c# information security' => 'ahmd'
                    )),
    );
    echo "<pre>";
    print_r($Array);
    echo "</pre>";
?>

شاهدوا كيف كان الكود من قبل و الآن, تمت إضافة الأشخاص العاملين على الدورات و تم إضافة المصفوفات الفرعية بطريقة جيدة.

لآحظوا الآن كيف سيكون الناتج على السيرفر.


الآن يمكن طباعة أي عنصر من داخل أي مصفوفة فقط كل ما عليك هو معرفة إسم العنصر و اين يقع العنصر.

على سبيل المثال نريد طبع إسم الشخص الذي يقدم دورة c#, network كيف سيكون عملية الطبع؟

ستكون عملية الطباعة بالشكل.

echo $Array['Dey 3'][3]['c# network']

الآن اصبح كل شيئ واضح و إن لم تفهموا الأمر اكتبوا استفساراتكم في تعليقات هذا الدرس.

google-playkhamsatmostaqltradent