آرایه (Array) در برنامه نویسی php

Rate this post

 آرایه (Array) چیست؟

آرایه در برنامه نویسی به متغیری گفته می شود که درون خود، می تواند چند متغیر مختلف و با مقادیر متفاوت داشته باشد، همانطور که می دانیم، متغیرها در حالت معمول تنها می توانند یک مقدار مشخص داشته باشند، اما اگر به فرض بخواهیم اطلاعات سنی کارکنان یک شرکت را برای یک پژوهش آماری مورد بررسی قرار دهیم، به شیوه سنتی ناچاریم برای هر نفر یک متغیر بنویسیم و یک مقدار متفاوت نسبت دهیم و در هنگام فراخوانی، مجددا این روند را تکرار کنیم، اما با آرایه این کار بسیار آسان تر می شود، با نوشتن متغیر ها و مقادیر در یک آرایه برای یک بار، می توانیم هر موقع که نیاز بود، در بین کلید ها و مقادیر به دنبال موارد مورد نظر خود باشیم و نتایج را از بین متغیرهای مختلف استخراج کنیم، از این گذشته به طور مثال گاهی نیاز داریم که کاربران سایتمان از بین یک فیلد انتخاب شونده یا select باکس، چند مقدار متفاوت را همزمان انتخاب کنند (شاید نمونه آن را در وب دیده باشید که با نگه داشتن کلید Ctrl این کار انجام می شود)، اگر این مقادیر از فرم html به برنامه php ارسال شوند، تنها از طریق آرایه است که می توانیم آنها را تجزیه کرده و مدیریت کنیم.

شیوه های مختلف تعریف آرایه در php

آرایه را در php همانند دیگر زبان های مرتبط با وب مانند جاوا اسکریپت، می توان به چند صورت تعریف کرد و در کل سه شیوه برای این کار وجود دارد:
– تعریف آرایه ها به صورت کلیدهای عددی و مقدار (Numeric).
در این شیوه هر یک از متغیرهای درونی آرایه با یک کلید عددی  (با استفاده از علامت []) و مقدار، تنظیم می شوند، به طور مثال:

<?php
$page[0] = "Home";
$page[1] = "Learn";
$page[2] = "Buy";
$page[3] = "About";
?>

حال می توانیم با دستور زیر از آرایه بالا خروجی بگیریم، کافی است متغیرها را با کلیدهای خاص آن فراخوانی کنیم:

<?php
echo $page[2];
?>

خروجی کد بالا به صورت زیر خواهد بود:

Buy

همان طور که ملاحظه می کنید، ما از بین متغیرهای مختلف آرایه فرضی page، مقادیر کلید سوم (که با عدد ۲ مشخص شده است) را به خروجی ارسال کرده ایم که در مثال بالا، برابر عبارت “Buy” است.
توجه کنید که شمارش در آرایه ها همیشه از صفر شروع می شود نه از یک، اینگونه اشتباهات گاهی باعث می شوند به فرض ساعت ها برای رفع باگ موجود در یک برنامه وقت صرف کنیم، غافل از اینکه یک صفر و یک ناقابل باعث بروز تمام مشکلات بوده اند!
– تعریف آرایه ها به شیوه خطی و مجموعه ای یا شرکت پذیر (Associative).
در این روش برعکس مورد قبل، از شیوه نگارش علامت [] استفاده نمی کنیم، بلکه کلیدها و مقادیر آنها را به صورت یک مجموعه و با کمک دستور array تعریف می کنیم، به طور مثال:

<?php
$page = array(0 => "Home", 1 => "Learn", 2 => "Buy", 3 => "About");
?>

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

<?php
echo $page[0];
?>

خروجی کد بالا به صورت زیر خواهد بود:

Home

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

<?php
$page = array("Home", "Learn", "Buy", "About");
?>

– تعریف آرایه به شیوه تو در تو و چندبعدی (Multidimensional).
نوع دیگری از تعریف آرایه در php، تعریف آن به شیوه آرایه در آرایه است، یعنی درون یک آرایه، خود چند آرایه دیگر قرار دارد که درون آن آرایه ها ممکن است همین روال وجود داشته باشد، این شیوه ممکن است کمی پیچیده گی کار با آرایه ها را بیشتر کند، اما در مواردی استفاده از آن اجتناب ناپذیر است، به مثال زیر توجه کنید.

<?php
$result = array(
"pages" => array("home","learn","buy"),
"users" => array("maryam","sina","mohammad")
);
?>

مسلما شیوه خروجی گرفتن از آرایه های بالا با آنچه که پیشتر دیدیم متفاوت خواهد بود، در اینجا لازم است که ابتدا متغیر اصلی آرایه را مشخص کنیم، سپس آرایه زیرمجموعه و در نهایت کلید مورد نظر در آن آرایه را، تا مقدار به خروجی ارسال شود:

<?php
echo $result['pages'][1];
?>

به این صورت دستور بالا در بین متغیر فرضی result که عنوان آرایه اصلی ماست و آرایه زیر مجموعه آن با نام pages، کلید دوم (که با عدد ۱ دریافت می شود) را به خروجی می دهد، یعنی خروجی برابر خواهد بود با:

learn

در واقع با این شیوه تعریف آرایه، کلیدها به صورت خودکار و درونی ساخته می شوند و نیازی نیست ما به صورت دستی آنها را تعریف کنیم، کافی است مقادیر را به هر آرایه نسبت دهیم و بقیه کار را به مفسر php بسپاریم.
مثال دیگر این بار با نوشتن کلیدها:

<?php
$result = array(
"pages" => array(0 => "home", 1 => "learn", 2 => "buy"),
"users" => array(0 => "maryam", 1 => "sina", 2 => "mohammad")
);
?>

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

بیشتر بخوانید:   فریم ورک لاراول چیست؟

استفاده از آرایه ها در حلقه foreach

مفسر php به طور ذاتی و از پیش تعریف شده، برای کار با آرایه ها در برنامه نویسی پیشرفته، حلقه ی foreach را در نظر گرفته است، با foreach می توانیم به فرض اطلاعات ارسال شده از یک فرم html که قابلیت انتخاب چندگانه دارد را تجزیه کرده و آیتم به آیتم مورد پردازش قرار دهیم، به طور مثال فرم html زیر را در نظر بگیرید.

<form action="#" method="post">
<select name="country[]" multiple="multiple">
<option value="Asia">Iran</option>
<option value="Europe">Germany</option>
<option value="Asia">Japan</option>
</select>
<input type="submit" value="ارسال" />
</form>

این یک فرم معمولی نیست! در این فرم فیلد انتخاب شونده ما قابلیتی منحصر به فرد دارد، این قابلیت این است که کاربر می تواند با نگه داشتن کلید Ctrl از بین option های موجود یک یا چند مورد را در یک ارسال، انتخاب کند، ملاحظه می کنید که علامت [] و عبارت multiple به حالت عادی فرم های html اضافه شده اند، این کار برای ایجاد یک آرایه از اطلاعات ارسالی است، اما در سمت سرور این آرایه را با چه چیز مدیریت کنیم؟
پاسخ روشن است، با حلقه foreach؛ به مثال زیر توجه کنید:

<?php
$country = $_POST['country'];
foreach ($country as $land){
    echo $land . '<br />';
}
?>

به این صورت اگر کاربر تمام موارد را انتخاب کند، خروجی به شکل زیر خواهد بود:

Asia
Europe
Asia

در واقع این نتیجه را به وسیله حلقه for نیز می توان به دست آورد، اما به دلیل اینکه حلقه for به طور ذاتی برای کار با آرایه ها ساخته نشده است، باید هنگام خروجی، مقادیر کلید مورد نظر خود را نیز به آن بدهیم، به طور مثال:

<?php
$country = $_POST['country'];
$count = count($country);
for($i=0;$i < $count;$i++){
    echo $country[$i] . '<br />';
}
?>

کد بالا نیز مشابه حلقه foreach رفتار خواهد کرد.
توجه کنید که در اینجا، کلید آرایه به صورت داینامیک و در هر دور حلقه ایجاد می شود، در واقع مقادیر کلید، همان مقادیر متغیر i است که در هر دور حلقه افزایش می یابد و حلقه نیز تا جایی که مقادیر i از تعداد آرایه ها که با تابع count محاسبه شده اند، کوچکتر باشد، ادامه می یابد.

بیشتر بخوانید:   How to change the root password for MySQL in XAMPP?

Check Also

browser مرورگر

تشخیص مرورگر کاربران سایت

تشخیص نام و نسخه مرورگر کاربردهای خاص خود را دارد که یکی از مهم‌ترین آنها …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *