آرایه

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

$numbers = array() ;

numbers نام آرایه را نشان می دهد.هنگام نامگذاری آرایه بهتر است که نام آرایه نشان دهنده نوع آرایه باشد. به عنوان مثال برای نامگذاری آرایه ای که اعداد را در خود ذخیره می کند از کلمه number استفاده کنید. با استفاده از دستور array یک آرایه ایجاد کرده ایم. حتی می توانیم به هنگام ایجاد آرایه مقادیر خانه های آن را نیز مشخص کنیم :

$numbers = array(1, 2, 3, 4, 5) ;

در این مثال 5 مقدار در 5 آدرس از فضای حافظه کامپیوتر شما ذخیره می شود. مثالا بالا را به روش زیر هم می توان پیاده سازی کرد :

$numbers = array();

$numbers[0] = 1;
$numbers[1] = 2;
$numbers[2] = 3;
$numbers[3] = 4;
$numbers[4] = 5;

اندیس یک آرایه از صفر شروع شده و به یک واحد کمتر از طول آرایه ختم می شود.به عنوان مثال شما یک آرایه 5 عضوی دارید، اندیس آرایه از 0 تا 4 می باشد چون طول آرایه 5 است پس 1-5 برابر است با 4. این بدان معناست که اندیس 0 نشان دهنده اولین عضو آرایه است و اندیس 1 نشان دهنده دومین عضو و الی آخر. برای درک بهتر مثال بالا به شکل زیر توجه کنید :
arrays-12-13-10-01
به هر یک از اجزاء آرایه و اندیسهای داخل کروشه توجه کنید.کسانی که تازه شروع به برنامه نویسی کرده اند معمولا در گذاشتن اندیس دچار اشتباه می شوند و مثلا ممکن است در مثال بالا اندیسها را از 1 شروع کنند.

انواع آرایه ها در PHP

در زبان PHP سه نوع آرایه وجود دارد :

  • آرایه های عددی (Numeric Array)
  • آرایه های انجمنی (Associative Array)
  • آرایه های چند بعدی (Multidimensional Array)

آرایه های عددی (Numeric Array)

آرایه عددی یا Numeric Array آرایه ایست که در اکثر زبان های برنامه نویسی وجود دارد. در این آرایه، به کل آرایه یک نام می دهیم بدین ترتیب هر یک از خانه های آرایه یک اندیس می گیرد و با آن اندیس می توانیم به یک خانه خاص آرایه دست بیابیم. به مثال زیر توجه کنید :

<?php

$name = array ('Jack' ,'Estephan' , 'Jordan');
echo $name[2];

?>
Jordan

آرایه های انجمنی (Associative Array)

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

<?php

$ages = array('Jack' => 21 , 'Estephan' => 24 , 'Jordan' => 19);
echo $ages["Jack"];

?>
21

این کد یک آرایه انجمنی با سه عضو ایجاد می کند و بعد به هنگام استفاده از کلید هایی که به هنگام تعریف داده شده برای دستیابی به عضو مربوطه استفاده می شود در اینجا باید حواستان باشد که این کلید مانند سایر موارد دیگر در PHP به حروف بزرگ و کوچک حساس است (Case Sensitive).

آرایه های چند بعدی (Multidimensional Array)

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

<?php

$Families = array(
                    "Griffin" => array("Peter", "Lois", "Megan") ,
                    "Quagmire"=> array("Glenn") ,
                    "Brown"   => array("Cleveland","Loretta","Junior")
                );

echo $Families['Griffin'][2];

?>
Megan

همانطور که از مثال فوق نیز پیداست یکی از تفاوت های عمده ای که آرایه در PHP با آرایه در سایر زبان ها دارد این است که در آرایه های چند بعدی PHP لازم نیست تعداد اعضای بعد های دوم به بعد با هم برابر باشند. و در آخر یاد آور می شویم که برای چاپ یک مقدار مورد نظر در آرایه های چند بعدی ابتدا نام آرایه اصلی سپس نام آرایه مورد نظر و بعد اندیس مقداری که قرار است چاپ شود را می نویسیم (مانند خط آخر مثال بالا).