آموزش PHP   >   ساختار دستوری PHP   >   تعریف و کار با آرایه ها در PHP

آرایه چیست و چه کاربردی دارد ؟

می دانید که متغیر فضایی است که می تواند مقداری اطلاعات مثل متن یا عدد را در خود نگهداری نماید . هر متغیر معمولی فقط می تواند یک مقدار را در خود جای دهد و نه بیشتر . این محدودیت گاهی اوقات ما را دچار مشکل می سازد .
برای مثال فرض کنید که لیستی از کتاب های آموزشی دارید . نگهداری نام هر یک از کتاب ها در یک متغیر جدا به صورت زیر خواهد بود :

$Books1 = " HTML " ;
$Books2 = " ASP " ;
&Books3 = " PHP " ;

حال فرض کنید که می خواهید بین کتاب ها جستجو کرده و کتاب خاصی را پیدا کنید . در حالتی که 3 کتاب دارید ، ساده است اما هنگامی که 300 کتاب دارید چه ؟ .آنگاه استفاده از روش سنتی فوق غیر ممکن خواهد بود و باید از آرایه ها استفاده نمایید .

آرایه متغیری است که می تواند چندین مقدار را در خود نگهداری نماید . این نوع متغیر تمامی موارد مورد نظر را درون خود با یک نام واحد نگهداری کرده . و به هر عضو یک اندیس Index اختصاص می دهد . شما می توانید به راحتی با به کار بردن نام آرایه و اندیس مورد نظر به هر عضو آرایه دسترسی داشته باشید . همچنین می توانید به راحتی با استفاده از ساختارهای حلقه ای بین اعضای آرایه حرکت کنید .
به طور کلی در PHP 3 نوع آرایه داریم :

  1. آرایه عددی ( Numeric array ) : در این نوع آرایه ، اعضای آرایه همه با یک نام واحد تعریف شده و هر کدام یک اندیس عددی منحصر به فرد خود را دارند ، که به وسیله آن شناسایی و قایل دسترسی می شوند .
  2. آرایه متناظر ( Associative array ) : در این نوع آرایه هر عضو به صورت یک جفت مقدار و شناسه عددی ( ID Key ) تعریف می شود . برای دسترسی به هر عضو آرایه باید از شناسه عددی آن استفاده کرد .
  3. آرایه تو در تو ( Multidimensional array ) : این نوع آرایه از دو یا چند آرایه تو در تو تشکیل می شود .

آرایه عددی ( Numeric array ) :

در این نوع آرایه که رایج ترین نوع آرایه می باشد ، اعضای آرایه همگی با یک نام یکسان تعریف شده و هر عضو یک شناسه یا اندیس دارد که به وسیله آن شناسایی و قابل دسترسی می شود .
دو روش کلی برای تعریف آرایه های عددی در PHP وجود دارد :

  1. در حالت اول آرایه را به صورت اتوماتیک ساخته شده و به هر عضو به ترتیب از ابتدا یک اندیس عددی اختصاص می یابد . این اندیس به صورت پیش فرض از صفر شروع می شود :
    حالت اول
    تعریف آرایه عددی
    $ Books = array ( " HTML " , " CSS " , " ASP " , " PHP " ) ;
  2. در روش دوم تعریف آرایه های عددی ، هنگام تعریف اعضای آرایه ، اندیس آنها را نیز تعیین می کنیم . در این حالت می توان اندیس های متفاوتی را نیز در نظر گرفت .
    حالت دوم
    تعریف آرایه عددی
    $ Books [ 0 ] = " HTML " ;
    $ Books [ 1 ] = " CSS " ;
    $ Books [ 2 ] = " ASP " ;
    $ Books [ 3 ] = " PHP " ;

آرایه متناظر ( Associative array ) :

در روش دوم ، هر عضو آرایه به صورت یک جفت مقدار و یک شناسه عددی ( ID Key ) تعریف می شود .
برای نگهداری گونه های خاصی از اطلاعات ، معملا آرایه های عددی مناسب نیستند و بهتر است از آرایه های متناظر استفاده شود .
نحوه استفاده از این آرایه را در مثال های زیر آموزش داده ایم . در آرایه زیر اسامی چند نفر به همراه اسامی آنها را تعریف کرده ایم :

  1. حالت اول
    تعریف آرایه متناظر
    & ages = array ( " Ali " => 32 , " Reza " => 30 , " Ahmad => 34 ) ;
  2. حالت دوم
    تعریف آرایه متناظر
    & ages [ ' Ali ' ] = " 32 " ;
    & ages [ ' Reza ' ] = " 30 " ;
    & ages [ ' Ahmad ' ] = " 34 " ;

آرایه های تو در تو ( Multidimensional array ) :

در آرایه های تو در تو ، ابتدا اعضای آرایه اصلی تعریف می شوند . سپس هر یک از اعضای آرایه اصلی ، خود می تواند یک آرایه را تشکیل دهد . اعضای آرایه دوم نیز می توانند به نوبه خود یک آرایه باشند و به همین ترتیب . روش تعریف یک آرایه تو در تو و استفاده از آن را در قالب مثال های عملی زیر نمایش داده ایم :

  • نحوه
    آرایه تو در تو
    $families = array
        (
          "Griffin"=>array
            (
                "Peter",
                "Lois",
                "Megan"
            ),
          "Quagmire"=>array
            (
                 "Glenn"
            ),
          "Brown"=>array
            (
                 "Cleveland",
                 "Loretta",
                 "Junior"
             )
            ) ;

    در مثال زیر نحوه استفاده و نمایش اعضای یک آرایه تو در تو نمایش داده شده است :

    مثال
    < ? php
             echo " Is " . $families['Griffin'][2] . 
             " a part of the Griffin family?" ;
    ? >
    خروجی Is Megan a part of the Griffin family ?


    راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


    نطر خودتان درباره این صفحه  :

    آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

    نام :                 
    آدرس Email :    
     
    نظر شما :        
    سوال امنیتی : جمع سه + پنج چنده ؟