آموزش برنامه نویسی و طراحی وب




این مقاله جز آموزش های برنامه نویسی نمی باشد و فهرستی برای آن موجود نیست

آرایه ها در PHP

it3du  
2018-01-31 12:14:04  
282  
php  

آرایه ها در PHP

آرایه ها و نحوه استفاده از آن ها در زبان 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 . '<br>;
}

 

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

 

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

 

 

 

منبع: it3du.ir

 

 

 



به اشتراک بگذارید

فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   کلوب   فیس نما  

مطالب مرتبط

مقاله مشابهی وجود ندارد


دیدگاه کاربران

2018-05-15 19:19:22  
Peyman
سلام این کد ارایه زیر چگونه با دستور foreach میشه چاپ کرد؟
array("peyman"=>array("Bww"=>"red"),"poorya"=>array("volvo"=>"blue"));

جواب داده شده توسط it3du در تاریخ 2018-05-16

با سلام. از اونجایی که در value آرایه یک آرایه دیگر موجود هست، بنابراین نیاز به دو حلقه foreach تو در تو دارید.
$arr = array("peyman"=>array("Bww"=>"red"),"poorya"=>array("volvo"=>"blue"));

foreach($arr as $key=>$value) {
	foreach($value as $key2=>$value2) {
		echo $key . ' array(' . $key2 . ' => ' . $value2 . ')
'; } }
موفق باشید

دیدگاهی ارسال کنید

  نظر شما پس از تایید نویسنده نمایش داده می شود

  نظرات به صورت فینگلیش تایید و جواب داده نمی شوند

  برای وارد کردن کد برنامه نویسی متن بالای تکست باکس را مطالعه فرمایید

  گزینه captcha برای تشخیص انسان از ربات را حتما قبل از ارسال انتخاب کنید

  ایمیل شما در سایت منتشر نمی شود

  پر کردن فیلد های ستاره دار الزامی می باشد

نام *
ایمیل *
وب سایت

استفاده از کد HTML مجاز نمی باشد

متن های انتخاب شده را می توانید با دکمه p به پاراگراف تبدیل کنید

برای وارد کردن کد برنامه نویسی ابتدا متن مورد نظرتان را انتخاب کنید و سپس زبان مورد نظر خودتان را از طریق دکمه ها انتخاب کنید

محتوای دیدگاه *

خروجی کامنت