recent
أخبار ساخنة

المصفوفة indexed Array في لغة PHP الدرس |8|

الصفحة الرئيسية
indexed Array php

المصفوفات Array في لغة PHP

المصفوفات array, هي مجموعة من العناصر المفهرسة حيث كل عنصر له رقم وتعريف خاص به.

توضيح للأمر اكثر (تصور قائمة من الكلمات فصلنا بينهم بإستخدام فاصلة تسمى القائمة المفصولة بفواصل).

وستكون بالشكل

kaissar , data , spider , Ali , Lana , Ahmed

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

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


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

يوجد لدينا ثلاث انواع للمصفوفات سوف نشرح كل واحدة منهم في درس على حدى وهم:

  1. indexed Array.
  2. Associative Array.
  3. Multidiminsional Array.

هذه ثلاث أنواع من المصفوفات وسوف يتم تقطيع عدد المقالات إلى ثلاث دروس وفي كل درس سيتم سيتم شرح احدها.


المصفوفة indexed Array في PHP

قبل البدء هل تعرف وظيفة المصفوفات؟

تخيل معي أن تقوم ببناء برنامج و ذلك البرنامج يحتوي على مجموعة كبيرة من الموظفين في شركة.

هل ستقوم بوضع كل إسم داخل متغير؟

ممكن أن يكون عدد الموظفين اكثر من 1000 ماذا تفعل هنا؟

الجواب, عليك بالمصفوفات.

 

مثال 1

اكتب برنامج يقوم بتعريف لغات البرمجة الخاصة في websit بداخل مصفوفة.

<?php
    $lng = array("html" , "html5" , "css" , "css3" , "js" , "php"); 
    print_r($lng);
?>

إستخدمت متغير lng و داخل المتغير توجد مصفوفة Array اي أنها الدالة المسؤولة عن طباعة المصفوفات. من نوع indexed array, ثم تقوم بإدخال الـ index الذي نريده بين الاقواس.

و الصورة العامة لكتابة مصفوفة من نوع indexed array تكون بالشكل.

$name = array(Element , Element , Element);

الدالة الثانية print_r هي الدالة المسؤولة عن طباعة البيانات داخل المصفوفة.

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

Array ( [0] => html [1] => html5 [2] => css [3] => css3 [4] => js [5] => php )

ويمكن إستخدام الوسم <pre > لسطر للأسفل لكل اندكس.

<?php
    $lng = array("html" , "html5" , "css" , "css3" , "js" , "php"); 
    echo "<pre>";
    print_r($lng);
    echo "<pre>";
?>

الناتج في السيرفر

<pre>Array
(
    [0] => html
    [1] => html5
    [2] => css
    [3] => css3
    [4] => js
    [5] => php
)
pre

الآن أحدكم سوف يقول: أنت قلت بأن المصفوفات هي مجموعة من العناصر حيث كل عنصر له تعريف و رقم.

كيف ننادي على احد الأندكس الداخلي من خلال الرقم, على طبيعة الحال الأندكس الذي يملك الإسم html له رقم.

إذا كنت تُريد طباعة عنصر من خلال الرقم عليك إستخدام الدالة echo بدل من print_r هي الدالة مسؤولة. فقط عن طباعة محتويات المصفوفة بالكامل وليس عنصر داخله و إذا كنت تريد طباعة عنصر من خلال الرقم عليك بإستخدام.

echo $lng[0]

تقوم بجلب رقم العنصر و تضعه داخل الأقواس بعد المتغير.

لكن الآن هذه المصفوفة ليست ذكية, و نريد التطوير اكثر من ذلك, ممكن أن يكون هناك مصفوفة داخل مصفوفة.

<?php
    $lng = array("html" , "html5" , "css" , array("font", "size") , "js" , "php"); 
    echo "<pre>";
    print_r($lng);
    echo "<pre>";
?>

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

على سبيل المثال العنصر css3 يكون به font,size و هما الخط و الحجم و سيكون في السيرفر بالشكل.

<pre>Array
(
    [0] => html
    [1] => html5
    [2] => css
    [3] => Array
        (
            [0] => font
            [1] => size
        )
    [4] => js
    [5] => php
)
<pre>

لاحظ كيف كان الناتج في المتصفح بأن يقول لك بأن النوع الثالث من هذا الأندكس هو مصفوفة و كل عناصره مثل size , font و أيضاً له ارقام لكل عنصر.

كيف نقوم بطباعة عنصر font؟

<?php
    $lng = array("html" , "html5" , "css" , array("font", "size"), "js" , "php"); 
    echo $lng[3][0];
?>

فقط نكتب ارقام العناصر بالترتيب داخل الأقواس.

نحن نعرف بأن array الداخلية هي احد العناصر و لها رقم وهو 3 و تمتلك مجموعة. من العناصر داخلية ايضاً مثل font و رقمها 0 و يتم الطباعة عبر echo $lng[3][0].

الآن المصفوفة ليست ذكية دعونا نطور الأمر اكثر و نستخدم الحلقات for في المصفوفة.

<?php
    $lng = array("html", "html5", "css",array("font" , "size") , "js" , "php" );
    echo "<ul>";
    for ($i= 0; $i< count($lng) ;$i++)
    {
        echo "<ul>";
        echo "<li>" . $i . "</li>";
    }
?>

لآحظ قمنا بإنشاء loop حتى يتم طبع عدد العناصر الموجودة في المصفوفة array و إستخدمنا معها الدالة count.

نقول هنا المتغير i=0 ثم نقول المتغير i<count للمتغير lng ثم i++ نقول هنا تزداد قيمة. اي كل مرة لحين تصل إلى عدد العناصر الموجودة في array و سيكون الناتج ارقام العناصر فقط.

إذا كنت تُريد طبع عنصر معين عليك بكتابة رقم العنصر echo $lng[2] و إذا كنت تريد طباعة اسماء العناصر. داخل اللوب ما عليك فقط كتابة إسم المتغير الذي يحوي بيانات المصفوفة في دالة الطبع بالشكل.

<?php
    $lng = array("html" , "html5" , "css" , "css3" , "js" , "php"); 
    echo "<ul>";
    for ($i= 0; $i< count($lng) ;$i++)
    {
        echo "</ul>";
        echo "<li>" . $lng[$i]. "</li>";
    }
?>

وسوف يكون الناتج داخل قائمة غير مرتبة ul كالتالي.

  • html
  • css
  • php
  • js

في الدرس القادم سوف نشرح Associative Array.

google-playkhamsatmostaqltradent