المصفوفات في php

المصفوفة هي بنية بيانات تخزن نوعًا واحدًا أو أكثر من القيم المتشابهة في قيمة واحدة. على سبيل المثال ، إذا كنت تريد تخزين 100 رقم ، فبدلاً من تحديد 100 متغير ، من السهل تحديد مصفوفة طولها 100.

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

Numeric array – مصفوفة ذو فهرس رقمي. يتم تخزين القيم والوصول إليها بطريقة خطية.

Associative array – مصفوفة مع سلاسل مثل الفهرس. يقوم هذا بتخزين قيم العناصر بالاشتراك مع القيم الأساسية بدلاً من ترتيب فهرس خطي صارم.

Multidimensional array – مصفوفة يحتوي على مصفوفة وقيم واحدة أو أكثر يتم الوصول إليه باستخدام مؤشرات متعددة

ملاحظة : يتم إعطاء وظائف الصفيف المضمنة في الوظائف. المزيد من المعلومات

Numeric array

يمكن لهذه المصفوفات تخزين الأرقام والسلاسل وأي كائن ولكن سيتم تمثيل فهرسها بالأرقام. افتراضيًا ، يبدأ مؤشر الصفيف من الصفر.

مثال:

فيما يلي المثال الذي يوضح كيفية إنشاء المصفوفات الرقمية والوصول إليها.

هنا استخدمنا دالة array () لإنشاء مصفوفة. يتم شرح هذه الوظيفة في مرجع الوظيفة.

<html>
   <body>
   
      <?php
         /* الطريقة الأولى لإنشاء مصفوفة */
         $numbers = array( 1, 2, 3, 4, 5);
         
         foreach( $numbers as $value ) {
            echo "Value is $value <br />";
         }
         
         /* الطريقة الثانية لإنشاء مصفوفة. */
         $numbers[0] = "one";
         $numbers[1] = "two";
         $numbers[2] = "three";
         $numbers[3] = "four";
         $numbers[4] = "five";
         
         foreach( $numbers as $value ) {
            echo "Value is $value <br />";
         }
      ?>
      
   </body>
</html>

سنحصل على النتيجة التالية عند التشغيل

Value is 1 
Value is 2 
Value is 3 
Value is 4 
Value is 5 
Value is one 
Value is two 
Value is three 
Value is four 
Value is five

Associative Arrays

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

لتخزين رواتب الموظفين في مصفوفة ، لن تكون مصفوفة المفهرس رقميًا هو الخيار الأفضل. بدلاً من ذلك ، يمكننا استخدام أسماء الموظفين كمفاتيح في المجموعة النقابية الخاصة بنا ، وستكون القيمة هي مرتباتهم.

ملاحظة: لا تحتفظ بمصفوفة ترابطية داخل اقتباس مزدوج أثناء الطباعة وإلا فلن تُرجع أي قيمة.

مثال:

<html>
   <body>
      
      <?php
         /* الطريقة الأولى لإنشاء وربط مصفوفة. */
         $salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);
         
         echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />";
         echo "Salary of qadir is ".  $salaries['qadir']. "<br />";
         echo "Salary of zara is ".  $salaries['zara']. "<br />";
         
         /* الطريقة الثانية لإنشاء مصفوفة. */
         $salaries['mohammad'] = "high";
         $salaries['qadir'] = "medium";
         $salaries['zara'] = "low";
         
         echo "Salary of mohammad is ". $salaries['mohammad'] . "<br />";
         echo "Salary of qadir is ".  $salaries['qadir']. "<br />";
         echo "Salary of zara is ".  $salaries['zara']. "<br />";
      ?>
   
   </body>
</html>

سنحصل على النتيجة التالية عند التشغيل

Salary of mohammad is 2000
Salary of qadir is 1000
Salary of zara is 500
Salary of mohammad is high
Salary of qadir is medium
Salary of zara is low

Multidimensional Arrays

مصفوفة متعدد الأبعاد يمكن أن يكون كل عنصر في المصوفة الرئيسية مصفوفة أيضًا. ويمكن أن يكون كل عنصر في المصفوفة الفرعية مصفوفة ، وهكذا. يتم الوصول إلى القيم في المصفوفة متعدد الأبعاد باستخدام فهرس متعدد.

مثال:

في هذا المثال ننشئ مصفوفة ثنائية الأبعاد لتخزين علامات لثلاثة طلاب في ثلاث مواد

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

<html>
   <body>
      
      <?php
         $marks = array( 
            "mohammad" => array (
               "physics" => 35,
               "maths" => 30,	
               "chemistry" => 39
            ),
            
            "qadir" => array (
               "physics" => 30,
               "maths" => 32,
               "chemistry" => 29
            ),
            
            "zara" => array (
               "physics" => 31,
               "maths" => 22,
               "chemistry" => 39
            )
         );
         
         /* الوصول إلى قيم مصفوفة متعددة الأبعاد */
         echo "Marks for mohammad in physics : " ;
         echo $marks['mohammad']['physics'] . "<br />"; 
         
         echo "Marks for qadir in maths : ";
         echo $marks['qadir']['maths'] . "<br />"; 
         
         echo "Marks for zara in chemistry : " ;
         echo $marks['zara']['chemistry'] . "<br />"; 
      ?>
   
   </body>
</html>

سنحصل على النتيجة التالية عند التشغيل

Marks for mohammad in physics : 35
Marks for qadir in maths : 32
Marks for zara in chemistry : 39

Leave a Reply