توی این مطلب میخوایم بدونیم که آرایه ها چی هستن و توی برنامه نویسی چه کاربردی دارند. تو آموزشای قبلی یاد گرفتید که چطور متغیر تعریف کنین.
برای تعریف متغیر ما میومدیم یه اسم انتخاب میکردیم که با علامت $ شروع میشد و از یه سری قوانین هم پیروی میکرد؛ مثلا اسم متغیر نمیتونه با عدد شروع بشه و ....
یه نمونه از تعریف متغیرها میتونه این دو مورد باشن:
$name = "ALI"
$age = 30;
که اولی متغیری از نوع رشته ایه و یه اسم داخلشه با مقدار ALI و دومی متغیری از نوع عددیه که سن فرد رو اونجا ذخیره کردیم.
اما بعضی وقتا حالتهایی پیش میاد که بجای یه دونه مقدار، به چندین مقدار مشابه (از یک نوع) نیاز داریم و به صرفه نیست برای هر کدوم از اون مقادیر یه متغیر جداگونه تعریف کنیم. مثلا برای نمایش اسم فصلها، یا اسامی روزهای هفته ما نباید بیایم به ازای هر فصل بهار، تابستان، پاییز و زمستان یا 7 روز هفته یه متغیر تعریف کنیم و اینجاست که آرایه ها به دادمون میرسند.
از آرایه ها برای ذخیره سازی یک یا چند مقدار معمولا هم نوع تحت یک نام استفاده میشه.
خب حالا همون مثال فصلها رو اگر بخوایم به شکل آرایه تعریف کنیم به این صورت عمل میکنیم:
$season = array('spring', 'summer', 'autumn', 'winter');
یعنی مثل همون تعریف متغیرها اول یه اسم بهش میدیم، بعد علامت = و بعد کلمه array با تلفظ اِرِی و در نهایت پرانتز باز و بسته و حالا با توجه به نوع مقادیرمون (رشته ای، عددی و ...)، اونها رو توی آرایه به شکل بالا مینویسیم و با علامت کاما از هم جدا میکنیم. اینجوری اسم این 4تا فصل تحت یه نام مشترک در اختیارمون قرارمیگیره.
آرایه بالا رو بهش میگن آرایه با اندیس عددی و 4 تا مقدار یا خونه داره و اسمش هم برای دسترسی بهش میشه همون $season. حالا اگه بخوایم به مقدار spring که معنیش بهاره و فصل اول هر سالی هستش دسترسی داشته باشیم و چاپش کنیم باید چیکار کرد؟
توی پی اچ پی بصورت پیش فرض، شماره خونه آرایه های عددی از صفر شروع میشن و میرن جلو؛ به این شماره اصطلاحا میگن اندیس یا ایندکس (Index)؛ یعنی شماره جا و موقعیت مکانی هر مقدار توی آرایه و به ترتیب پشت هم قرار دارن.
مثل یک صف در نظر بگیریدش. آرایه ها در واقعا خونه های پشت سرهمی هستن که توی حافظه قرار دارند. پس اگه بگیم خونه اول یا خونه 0 از آرایه $season انگار گفتیم spring. یا اگه بگیم خونه دوم یا خونه شماره 1 آرایه بالا، انگار گفتیم summer و برای دسترسی بهش از طریق کدنویسی به شکل زیر عمل میکنیم.
echo $season[0]; // spring
echo $season[1]; // summer
اگه بهمون بگن آرایه عددهای زیر 10 رو درست کن باید چیکار کنیم؟ جواب خط کد زیر:
$numbers_less_than_ten = array(1,2,3,4,5,6,7,8,9);
یه شکل دیگه هم میشه نوشت:
$numbers_less_than_ten = [1,2,3,4,5,6,7,8,9];
یعنی بجای استفاده از array() کافیه مقادیرمون رو بذارمون وسط دوتا بَریکِید (barricade). [ و ]
به جز مدل اندیس عددی، که ساده ترین حالت آرایه ها هستش، ما دو مدل دیگه آرایه داریم که یکیش بهش میگن آرایه تجمعی یا انجمنی - Associative Arrays و دومی هم آرایه چندبعدی یا Multidimensional Arrays.
یادگیری این دوم مدل فعلا لزومی نداره و در حد آشنایی بهش اشاره میکنم و اگر آینده لازم شد توضیحات بیشتری داده میشه.
در آرایه تجمعی، میشه به هر موقعیت مکانی مقادیر درون آرایه، که به صورت پیشفرض برای دسترسی بهشون از اونها استفاده میکردیم، یه اسم داد و دیگه از اعداد استفاده نکرد. چطوری؟ مثال:
$season = ['spring', 'summer', 'autumn', 'winter'];
که مدل ساده بالا اگه بخواد به نوع تجمعی تغییر داده بشه اینطوری میشه:
$season = ['fasl_1' => 'spring', 'fasl_2' => 'summer', 'fasl_3' => 'autumn', 'fasl_4' => 'winter'];
و برای نمایش و چاپ هر فصل دیگه بجای شماره خونه از اون اسمی که براش گذاشتیم استفاده میکنیم. مثلا برای نمایش بهار باید اینو بنویسیم.
echo $season['fasl_1']; // spring
یا فرضا اگه یه آرایه از حقوق پرسنل یه شرکت رو داشته باشیم، میایم جلوی هر نفر حقوقش رو میذاریم تا بعد راحت بشه حقوقش رو بر اساس اسم نمایش داد. مثال:
$hoghoogh = ['ali' => 10000, 'ahmad' => 40000, 'arash' => 33000, 'mina' => 29000];
و برای نمایش حقوق علی، کافیه بنویسیم:
echo $hoghoogh['ali'];
نوع سوم هم که آرایه های چندبعدیه، که میشه یک آرایه که مقادیرش هم خودشون از نوع آرایه هستن. در واثع آرایه ای از آرایه ها.
یه نمونه از مثالهاش میتونه تعداد روزهای هر ماه از سال باشه. این مدل فعلا یادگیریش مهم نیست چون ممکنه گیج و سردرگمتون کنه و ما اکثرا از نوع اول استفاده میکنیم آینده.
$months = [
1 => [1,2,3,4,5,6,7,8,9...30], 2 => [1,2,3,4,5,6,7,8,9...29], 3 => [1,2,3,4,5,6,7,8,9...31],
...
];
و برای مثلا دسترسی به روز پنجم از ماه سوم باید همچین چیزی بنویسیم:
echo $months[1][4]; // عدد 4 به این خاطره که آرایه ها از 0 شروع میشن پس یکی از 5 کم شد.
خب اینم از این، امیدوارم براتون جا افتاده باشه. تو مبحث بعدی که حلقه ها هستن از این آرایه ها زیاد استفاده میکنیم.
شاد باشید