الأحد، 5 يناير 2014

أساسيات البرمجة برمجة المواقع بي اتش بي المصفوفات PHP Arrays

أساسيات البرمجة  برمجة المواقع

 بي اتش بي المصفوفات PHP Arrays

ماهي المصفوفات Arrays؟

المصفوفات عبارة عن مجموعة من البيانات لنوع معين على سبيل المثال لا يمكن تعريف مصفوفة رقمية ونضغ فيها عناصر نصية.بمعنى يجب ان تكون عناصرها من نفس النوع.يتم تخزن المصفوفة في مكان في الذاكرة يسمى Managed Heap ومن هنا نستنتج أن المصفوفات هي مرجعية القيمة Reference Value. أي يتم الوصول لعناصرها بالمرجع. المصفوفة أشبه بجدول يتكون من صفوف و أعمدة حيث انه يمكن الوصول للخلية في الجدول بتقاطع رقم الصف مع العمود وكذلك بالنسبة للمصفوفات ثنائية البعد أو مصفوفات المصفوفات.للوصول للمصفوفة يتم عن طريق فهرس المصفوفة. ويسمى فهرس المصفوفة بال index.
لغة الي اتش بي PHP أعطت مرونة  بعكس اللغات البرمجية الاخرى بحيث يمكن أن يكون فهرس المصفوفة نصي.بينما لغات الاخرى لا تسمح بذلك مثل تعريف المصفوفات في لغة الس شارب c#.

أساسيات البرمجة  برمجة المواقع بي اتش بي المصفوفات PHP Arrays
صورة للمصفوفات

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

توجد ثلاث أنواع من المصفوفات يمكن تعريفها داخل لغة الي اتش بي.
  1. المصفوفة الرقمية Numeric array  وهي مصفوفة يكون فيها فهرس المصفوفة رقمي.
  2. المصفوفة المترابطة وهي مصفوفة يكون فيها فهرس المصفوفة نصي.
  3. المصفوفة متعددة الابعاد Multidimensional 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>

This will produce 

ناتج المصفوفة الرقمية

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


ثالثا المصفوفات متعددة الابعاد

هي مصفوفة بحيث ان كل عنصر من عناصر المصفوفة يكون مصفوفة أخرى.

مثال كود على المصفوفات متعددة الابعاد

<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




Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
Al alami st
gaza -jabaliaGaza Strip
Palestine
DOB: 05/10/1984
by +Ahmed Almahallawi 
5/1/2014

التسميات: