PHP-آرایه ها
#1
Note 
ها انواع خاصی از متغیرها به حساب می آیند که می توانند چندین داده را در قالب یک نام ذخیره کنند. برای مثال فرض کنید قرار است اسامی 5 دانشجو را موقتا ذخیره کنید ، در این حالت در صورتیکه نخواهیم از آرایه استفاده کنیم مجبوریم برای هر دانشجو یک متغیر جدید در نظر بگیریم و نام دانشجو را در آن ذخیره نماییم.
[HTML]
$std1 = "ali";
$std2 = "hamid";
$std3 = "moeen";
$std4 = "amin";
$std5 = "mina";
[/HTML]
این کار بسیار خسته کننده ، سخت و طاقت فرساست ، بخصوص زمانیکه تعداد داده های موجود زیاد و مثلا نیاز به جستجو بین این اسامی باشد سختی کار بیشتر و بیشتر نمایان می شود.

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

در زبان php روش های مختلفی برای ایجاد آرایه وجود دارد. ساده ترین روش برای ساخت لیست اسامی دانشجویان مثال قبل به صورت زیر است:

[HTML]$stdNames = array("ali", "hamid", "moeen", "amin", "mina");
[/HTML]
روش دیگر ایجاد یکی یکی عناصر این آرایه است:
[HTML]
$stdNames[0] = "ali";
$stdNames[1] = "hamid";
$stdNames[2] = "moeen";
$stdNames[3] = "amin";
$stdNames[4] = "mina";
[/HTML]
اگر شماره گذاری اندیس ها برای شما مشکل ساز است می توانید به صورت زیر عمل کنید:
[HTML]
$stdNames[] = "ali";
$stdNames[] = "hamid";
$stdNames[] = "moeen";
$stdNames[] = "amin";
$stdNames[] = "mina";
[/HTML]
این روش نیز مانند روش قبلی است با این تفاوت که شماره اندیس عناصر آرایه را ذکر نکردیم و php خود برای این عناصر شماره های 0 الی 4 را در نظر خواهد گرفت. این عمل را در آینده auto-incremented keys می نامیم. اینکه از کدام روش برای ایجاد آرایه استفاده نمایید هیچ تاثیری در نتیجه کار نخواهد داشت.

برای نمایش مقدار یک عنصر از آرایه کافی است که نام آرایه و بعد شماره اندیس آرایه را داخل کروشه ذکر کنیم:
[HTML]
echo $stdNames[1];[/HTML]

در مثال قبل php نام hamid را در مرورگر نمایش خواهد داد. می توانید از یک حلقه برای نمایش همه عناصر آرایه استفاده نمایید.
[HTML]
for($i=0;$i<=4;$i++)
echo $stdNames[$i];[/HTML]

روش قبل روش خوبی برای نمایش همه عناصر یک آرایه است ولی بهترین روش نیست چراکه تعداد عناصر آرایه hard-code شده است. روش بهتر استفاده از حلقه های foreach به شکل زیر است:
[HTML]
foreach($stdNames as $name){
echo $name;
}[/HTML]

در صورتیکه برای اشغال زدایی نیاز دارید همه عناصر آرایه را نمایش دهید می توانید از دو توابع داخلی php به نام های print_r و var_dump استفاده نمایید:
[HTML]
$print_r($stdNames);
echo "<br />";
$var_dump($stdNames);
[/HTML]

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

اگر بخواهیم به زبان ساده تعریفی از مکانیزم آرایه ها در php داشته باشیم باید از نگاشت یاد کنیم. به عبارت دیگر آرایه php یک نگاشت از کلید (key) به مقدار (value) است. در مثال اسامی دانشجویان کلید 0 نگاشتی از مقدار "ali" و کلید 1 نگاشتی از مقدار "hamid" است. php به ما اجازه می دهد که کلیدهای با معنی تری داشته باشیم. associative array به این معنی است که php به شما اجازه می دهد برای مقادیر آرایه کلیدهای دلخواه در نظر بگیرید. گاهی اوقات به آرایه های associative دیکشنری نیز گفته می شود. لیست اسامی دانشجویان به صورت آرایه associative به شکل زیر تعریف می شود:

[HTML]$stdNames = array(
"84212234" => "ali",
"86287638" => "hamid",
"83862837" => "moeen",
"79829273" => "amin",
"89736286" => "mina"
);
[/HTML]
در مثال بالا شماره دانشجویی را به عنوان کلید در نظر گرفتیم. این نکته را حتما به خاطر بسپارید که کلیدها case-sensitive ولی type-insensitive هستند.

case-sensitive: یعنی بین حروف کوچک و بزرگ باید تفاوت قائل شویم برای مثال Air با aiR تفاوت خواهند داشت.
type-insensitive: به این معناست که نوع داده ای کلید برای ما تفاوتی ندارد مثلا 1 که از نوع int است با '1' که از نوع رشته ای است با هم تفاوتی نخواهند داشت.

آرایه های associative در زبان php به صورت زیر نیز قابل تعریف اند:
[HTML]
$stdNames["84212234"] = "ali";
$stdNames["86287638"] = "hamid";
$stdNames["83862837"] = "moeen";
$stdNames["79829273"] = "amin";
$stdNames["89736286"] = "mina";[/HTML]

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

[HTML]$echo 'Name ------- Student No'.'<br />';
$echo stdNames["84212234"].'-84212234';
[/HTML]

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


هریک از عناصر آرایه در php می توانند از هر نوعی باشند پس می توانیم آرایه را نیز به عنوان عضو عناصر در نظر بگیریم. بنابراین به زبان ساده تر می توانیم یک آرایه داخل آرایه دیگر تعریف کنیم و داخل آن نیز یک آرایه دیگر و داخل آن نیز و به همین ترتیب. تعریف آرایه چندبعدی در زبان php به سادگی آرایه های معمولی است. در مثال زیر سعی می کنیم لیست داشنجویان را بر اساس رشته تحصیلی در داخل آرایه چندبعدی ذخیره نماییم:
[HTML]
$students["Physics"] = array(
"84212234" => "ali",
"86287638" => "hamid",
"83862837" => "moeen",
"79829273" => "amin",
"89736286" => "mina"
);
[/HTML]
[HTML]$students["Computer"] = array (
"84534243" => "samira",
"85432255" => "payam",
"82355234" => "hossain",
"88553289" => "mehrdad",
"83826264" => "fatemeh"
);[/HTML]

برای دسترسی به عناصر آرایه چندبعدی php کافی است به شکل زیر عمل نماییم:
[HTML]
echo $students["Computer"]["88553289"];
[/HTML]
در مثال بالا مفسر php نام mehrdad را در مرورگر به نمایش خواهد گذاشت.

برای کاربا آرایه ها و دستکاری آنها php توابع زیادی مانند sizeof ، unset ، asort و ... در اختیار برنامه نویس قرار می دهد. مطالعه و تحقیق در مورد کاربرد این توابع را بر عهده خوانندگان معترم قرار می دهیم. در صورت آشنایی با این توابع می توانید کاربرد و مثال های بیشتر را در بخش نظرات این مطلب اضافه نمایید.

چطور امضا کنم؟  Huh
پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

کاربرانِ درحال بازدید از این موضوع:   1 مهمان