آرایه ها و نحوه استفاده از آن ها در زبان PHP

 قبل از هر چیزی دلیل استفاده از آرایه را بررسی می کنیم. از آرایه برای ذخیره کردن مجموعه ای از مقادیر در یک متغیر استفاده می شود.

آرایه ها در PHP شامل جفت های کلید-مقدار (Key-Value Pair) هستند. کلید آرایه می تواند یک عدد از نوع صحیح می باشد (که آرایه عددی نام دارد) یا می تواند یک رشته یا string باشد (که آرایه انجمنی Associative Array نام دارد) و یا ترکیبی از هردو باشد که آرایه مختلط نام دارد و مقدار آن هم می تواند از هر نوع داده ای باشد.

آرایه های عددی

در آرایه های عددی ایندکس آرایه یک عدد می باشد. منظور از ایندکس شماره شاخص برای دسترسی به عناصر آرایه است. ایندکس آرایه از 0 شروع می شود. یعنی یک آرایه با ۵ عنصر به ترتیب با ایندکس 0 تا 4 قابل دسترس می باشد. مثال زیر را ببینید

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

با استفاده از سازنده array یک آرایه ایجاد می شود. مقادیری که در پارامتر به متد array داده می شود عناصر آرایه را مشخص می کند. 

از نسخه PHP 5.4 به بعد می توان با استفاده از یک جفت کارکتر کروشه ([ ]) یک آرایه تعریف کرد

$arr = [1,2,3,4,5];

حالا برای دسترسی به عناصر موجود در آرایه باید با استفاده از ایندکس آرایه به آن دسترسی پیدا کنیم. دستورات زیر را ببینید

echo $arr[0];

 دستور بالا مقدار اولین عنصر از آرایه arr را چاپ می کند. همانطور که قبلا گفته شد ایندکس یک آرایه عددی از صفر شروع می شود. یعنی اگر آرایه ای n عنصر داشته باشد ایندکس آرایه از 0 تا n-1 می باشد.

حالا اگر اندیسی را وارد کنید که برای آن اندیس مقداری وجود نداشته باشد چه اتفاقی می افتد؟ دستور زیر را ببینید

echo $arr[5];

با اجرای دستور بالا با یک notice از php مواجه می شویم

Notice: Undefined offset: 5 in /opt/lampp/htdocs/array.php on line 6

این یک آگهی از سوی کامپایلر php می باشد که اجرای برنامه را متوقف نمی کند و فقط به ما اطلاع می دهد که شما یک ایندکس تعریف نشده وارد کرده اید. حالا برای اضافه کردن یک عنصر دیگر به آرایه arr چه باید کنیم ؟ دستور زیر را ببینید

$arr[] = 6;

زمانی که با استفاده از نام آرایه و کروشه باز و بسته خالی یک مقدار را وارد کنید یک عضو جدید به آرایه اضافه می شود. حالا مقادیر آرایه را با کد زیر چاپ می کنیم

$arr = [1,2,3,4,5,6];
$n = 6;
for($i = 0; $i < $n; $i++) {
   echo $arr[$i] . ' ';
}

 در دستورات بالا تعداد عناصر آرایه را n در نظر گرفتیم و با استفاده از حلقه for آن ها را چاپ کردیم. خروجی دستورات بالا به شکل زیر می باشد

1 2 3 4 5 6

حالا برای تغییر مقدار خانه n ام آرایه چکار باید کرد ؟ دستور زیر را ببینید

$arr[n] = newValue;

این دستور می گوید برای خانه آرایه با ایندکس n مقدار newValue را انتساب بده. حالا برای قرار دادن مقدار 10 در خانه اول آرایه به صورت زیر عمل می کنیم

$arr[0] = 10;

حالا اگر مقادیر اینکدس 0 تا 5 را در خروجی چاپ کنیم

echo "$arr[0] $arr[1] $arr[2] $arr[3] $arr[4] $arr[5]";

خروجی به صورت زیر می باشد

10 2 3 4 5 6

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

در آرایه های انجمنی کلید آرایه به جای یک عدد صحیح یک رشته (string) می باشد. به هر خانه از آرایه یک رشته را اختصاص می دهد که برای دسترسی به مقادیر آن باید از آن رشته استفاده کرد. در زمان ساخت چنین آرایه ایی از عملگر زیر استفاده می شود

=>

 دستور زیر یک آرایه انجمنی در php  ایجاد می کند

$arr = array('one' => 1, 'two' => 2, 'three' => 3);

 نحوه دسترسی به عناصر آرایه هم مانند آرایه عددی می باشد با این تفاوت که به جای ایندکس عدد صحیح باید کلید رشته ایی مورد نظر را وارد کنید. دستور زیر مقادیر آرایه را چاپ می کند

echo "$arr['one'] $arr['two'] $arr['three']";

 خروجی به صورت زیر می باشد

1 2 3

 اگر کلیدی که برای آرایه انجمنی استفاده می کنید اعداد صحیح باشند آنگاه آرایه عددی ایجاد می شود. دستور زیر را ببینید

$arr = array( 0 => 0, 1 => 1, 2 => 2);

 دستور بالا آرایه ایی عددی ایجاد می کند. اما اگر فراموش کنید برای عنصری کلیدی تعریف کنید مانند دستور زیر

$arr = array(0 => 0, 1);

 در این صورت کامپایلر PHP برای عنصری که کلید برایش در نظر گرفته نشده است عدد بعد از بزرگترین کلید صحیح به کار گرفته شده را اختصاص می دهد.

نکته: برای انتساب مقدار جدید به یک عنصر موجود در آرایه و اضافه کردن عنصر جدید به آرایه همانند آرایه عددی عمل می کنیم

$arr['one'] = 'one';
$arr['four'] = 4;

 آرایه های مختلط در PHP

نکته در اینجاست که PHP هیچ تفاوتی بین آرایه عددی و انجمنی قائل نمی شود و در نتیجه هریک از آرایه ها را می توان در دیگری ادغام کرد. مثال زیر را ببینید

$arr = [0 => 23, 'index' => 'value'];

فقط باید دقت نمایید که به هر عنصر چه کلیدی را اختصاص داده اید

آرایه های چند بعدی در PHP

یک آرایه چند بعدی در PHP آرایه ای متشکل از چند آرایه می باشد. برای مثال آرایه دو بعدی زیر را در نظر بگیرید

$arr = array([00,01], [10,11]);

 چون آرایه arr دو بعدی می باشد باید با استفاده از دو جفت کروشه برای دسترسی به مقادیر آرایه استفاده کنیم. دستورات زیر مقادیر آراه را در خروجی چاپ می کند.

echo "$arr[0][0] $arr[0][1] $arr[1][0] $arr[1][1]";

 خروجی به صورت زیر می باشد

00 01 10 11

  ساخت آرایه انجمنی چند بعدی 

برای ساخت این آرایه باید یک آرایه انجمنی ایجاد کنیم که مقدار هر کلید خودش یک آرایه باشد. چنین آرایه ای را اصطلاحا جدول در هم یا Hash Table نیز می نامند.

دستور زیر را ببینید

$arr = array('one' => ['00', '01'], 'two' => [10, 11]);

 حالا با استفاده از کلید آرایه arr و اندیس آرایه موجود در کلید می توانیم به عناصر آرایه دسترسی داشته باشیم

echo $arr['one'][0] . $arr['one'][1];

 خروجی زیر را خواهیم داشت

0001

  دسترسی به عناصر آرایه با استفاده از حلقه foreach

مثال زیر برای چاپ مقادیر آرایه با استفاده از حلقه foreach می باشد

$arr = ['one' => 1, 'two' => 2, 'three' => 3];
foreach($arr as $key => $value) {
    echo $key ' => ' $value . '
;
}

 خروجی دستورات بالا به شکل زیر می باشد

one => 1
two => 2
three => 3

 

منبع: it3du.ir