به کمک آرایه ها میتوان مقادیر زیادی را در یک متغیر نگهداری کرد. کسب مهارت در کار با آرایهها در برنامه نویسی، توانایی و کیفیت ما را افزایش خواهد داد. با استفاده از آرایه در PHP خواهیم توانست کارها و محاسبات طولانی را در زمانهای کمتر و با هوشمندی بیشتری انجام دهیم.
فرض کنید میخواهیم اسم سه نفر را ذخیره و از آنها استفاده کنیم. میتوان به راحتی با تعریف سه متغیر از نوع رشتهای، این اسامی را ذخیره و با آنها کار کرد. اما اگر این تعداد به صد یا هزار اسم برسد، کار کردن با تعداد زیادی متغیر، سخت و طاقتفرسا خواهد شد. اینجاست که آرایهها به کمک ما میآیند.
همانطور که احتمالاً تا کنون متوجه شدید، آرایه یک متغیر با امکان ذخیره سازی چندین مقدار است. اندازه آرایه میتواند متفاوت باشد و بسته به نیاز ما تغییر کند. در زبان برنامه نویسی PHP نوع دادهایِ مقادیر مختلف ذخیره شده در هر آرایه میتواند با هم یکسان بوده یا متفاوت باشد.
در هنگام برنامه نویسی با زبان پی اچ پی، ممکن است بارها از آرایهها کمک بگیریم. از محاسبات و ذخیره سازی موقت اطلاعات گرفته تا دریافت اطلاعات از کاربر. کاربردهای آرایه با توجه به نیازهای ما در هنگام نوشتن یک برنامه تحت وب مشخص خواهد شد!
در حالت کلی میتوان اکثر کاربردها را در سه دسته زیر قرار داد.
در زبان PHP به کمک تابع array()
میتوان یک آرایه ایجاد کرد. فقط کافی است این تابع را صدا بزنید تا متغیر مورد نظر، به صورت آرایه تعریف شود.
$test_array = array(); |
تابع array()
میتواند ورودی نیز داشته باشد. با مشخص کردن ورودی، مقادیر تعریف شده، در لحظهی ساخته شدن آرایه در آرایه قرار خواهند گرفت. در ادامه با تعریف انواع آرایه، شیوه ایجاد آنها را نیز بررسی میکنیم.
در حالت کلی شاید بتوان گفت، آرایه فقط یک نوع است! اما با توجه به ویژگیها و کاربرهای مختلف، اکثراً آرایه در PHP را به سه نوع تقسیمبندی میکنند.
آرایه عددی (یا Numeric) که به آرایه فهرستی (یا Indexed) نیز معروف است سادهترین نوع آرایه است. این نوع آرایهها فقط شامل عناصر هستند.
آرایه زیر یک نوع آرایه عددی در PHP است. در این آرایه نام سه فرد را نگهداری میکنیم.
<?php $persons = array("Sara", "Omid", "Sam") ?> |
به هر کدام از عناصر موجود در آرایه یک عدد نسبت داده میشود. این عدد مشخص کننده موقعیت و جایگاه عنصر در کل آرایه است. شمارهگذاری از عدد صفر شروع شده و تا اندازه آرایه منهای یک ادامه پیدا میکند.
به کمک علامت []
در جلوی نام آرایه، میتوان به تک تک عناصر دست یافت.
<?php echo $person[1]; ?> // Omid |
همانطور که میبینید خروجی این برنامه، عنصر دوم (با ایندکس 1) در آرایه است.
میتوان مقادیر مورد نظر را پس از ایجاد آرایه نیز مشخص کرد. برای این کار، مقدار مورد نظر را در ایندکس دلخواه قرار میدهیم.
1 2 3 4 5 6 7 8 | <?php $persons_new = array(); $persons_new[0] = "Sara"; $persons_new[1] = "Omid"; ?> |
آرایههای انجمنی بسیار شبیه به آرایههای عددی هستند. با این تفاوت که به جای ایندکسِ عددی، یک کلید (از نوع رشته) تعریف میشود.
در آرایه انجمنی (Associative Array) هر مقدار دارای یک کلید است. این کلید توسط ما ایجاد شده و برای هر عنصر از آرایه یکتاست. برای دسترسی به عناصر آرایه انجمنی، در هنگام صدا زدن آرایه، در داخل []
مقدار کلید را قرار میدهیم.
یک مثال: فرض کنید میخواهیم در یک آرایه سن افراد مختلف را ذخیره کنیم. مقادیر ما سن هر فرد، و کلیدها نام آنهاست. پس آرایهای مشابه زیر خواهیم داشت.
$ages = array( "sara" => 19, "omid" => 20, "sam" => 22 ); |
حال برای دسترسی به سن سارا، کافی است آرایه را به صورت زیر صدا بزنیم.
echo $ages["sara"]; |
مشابه آرایههای عددی، میتوان عناصر دیگر این آرایه را به صورت زیر نیز تعریف کرد.
$ages["nazanin"] = 15; |
به دلیل اینکه در آرایههای Associative به هر مقدار یک کلید نسبت میدهیم، به این آرایهها، آرایههای کلید-مقدار (Key-Value) نیز گفته میشود.
آرایههای چند بعدی، شاید تفاوت زیادی با دو نوع قبلی نداشته باشند! تنها تفاوت آرایههای چند بعدی این است که عناصر حداقل در یک سطح، خود نیز آرایه هستند.
برای مثال، در یک آرایه دو بعدی، هر عنصر از آرایه اصلی، خود یک آرایه است. و در آرایهی دومی مقادیر مورد نیاز ذخیره میشود.
فرض کنید میخواهیم آرایهای داشته باشیم که اطلاعات افراد مختلف را در خود نگهداری میکند. این آرایه میتواند یک آرایه دو بعدی باشد.
هر عنصر از آرایه اصلی، یک آرایه است که اطلاعات فردی خاص در آن قرار گرفته است.
آرایههایی که به صورت چند بعدی تعریف میشوند میتوانند عددی، انجمنی یا ترکیبی از اینها باشند.
آرایه چند بعدی زیر، نام و سن چند فرد را در خود نگهداری میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // Define Multidimensional Array: $users = array( array( "name" => "Sara", "age" => 19, "email" => "[email protected]", ), array( "name" => "Omid", "age" => 20, "email" => "[email protected]", ), array( "name" => "Sam", "age" => 22, "email" => "[email protected]", ) ); ?> |
تا به این جا توانستیم آرایههای مختلفی ایجاد کرده و مقادیر آنها را بخوانیم.
در ادامه به بررسی روشها و ترفندهای کار با آرایه خواهیم پرداخت. به کمک این روشها میتوانیم بر روی آرایهها تغییراتی اعمال کرده و با آنها کار کنیم.
در خروجی برنامه و یا هنگام تست کردن آن، بارها نیاز داریم تا مقادیر یک آرایه را در خروجی چاپ کرده و ببینیم. با استفاده از حلقهها (که در ادامه بررسی میکنیم) و دستور دوست داشتنی echo
میتوان مقادیر درون یک آرایه را چاپ کرد.
اما نوشتن حلقههای مختلف برای بررسی محتویات چند آرایه شاید کار راحتی نباشد. در این جا دو تابع برای چاپ عناصر آرایه معرفی میکنیم.
تابع print_r()
آرایه را گرفته و در خروجی تمام مقادیر به همراه ایندکسها (یا کلیدها) را چاپ میکند.
$arr = array("sara", "omid", "sam"); print_r($arr); // Array([0]=>sara [1]=>omid [2]=>sara) |
اگر میخواهید خروجی زیباتری داشته باشید، میتوانید قبل و بعد از خروجی این تابع، یک تگ <pre>
قرار دهید. با این کار فواصل ایجاد شده، در صفحه HTML نیز نمایش داده میشود.
1 2 3 4 5 6 7 8 9 | <?php $arr = array("sara", "omid", "sam"); echo "<pre>"; print_r($arr); echo "</pre>"; ?> |
خروجی این کد در صفحه HTML چیزی شبیه زیر خواهد شد.
1 2 3 4 5 6 | Array ( [0] => sara [1] => omid [2] => sam ) |
تابع var_dump()
نیز آرایه را به عنوان ورودی گرفته و از نظر ظاهری چیزی شبیه به تابع اول چاپ میکند. با این تفاوت که نوع دادهای هر کدام از عناصر را نیز مشخص میکند.
1 2 3 4 5 6 7 | <?php $arr = array("sara", "omid", "sam"); echo "<pre>"; var_dump($arr); echo "</pre>"; ?> |
خروجی کد بالا مشابه زیر خواهد شد.
array(3) { [0] => string(4) "sara" [1] => string(4) "omid" [2] => string(3) "sam" } |
هر چند کم اتفاق میافتد، اما گاهی اوقات نیاز داریم مقدار یک عنصر از آرایه را بازنویسی (overwrite) یا با مقدار جدیدی عوض کنیم.
برای این کار میتوان دقیقا مشابه با تعریف یک مقدار برای یک خانه از آرایه عمل کرد. به این صورت که با فراخوانی عنصر مورد نظر، مقدار دلخواه را در آن میریزیم. برای درک بهتر، به قطعه کد زیر توجه کنید.
1 2 3 4 5 6 7 8 9 10 | <?php // Changing an Array Element: $arr = array("Red", "Yellow", "Green"); $arr[1] = "Blue"; // new $arr = array("Red", "Blue", "Green") ?> |
در این جا مقدار دومین عضوِ آرایه را از Yellow به Blue تغییر دادیم.
در زبان برنامه نویسی PHP یک حلقه مخصوص آرایهها به نام foreach
داریم. به کمک این تابع میتوان هر نوع آرایهای را مورد بررسی قرار داد.
اگر صرفاً آرایه عددی داشته باشیم، میتوان به کمک یک حلقه ساده for
، اندیسها را افزایش داده و به تک تک عناصر دسترس داشت. ما در این جا صرفاً حلقه foreach()
را بررسی میکنیم.
اگر آرایه $persons
یک آرایه عددی باشد، برای دسترسی به عناصر آن به صورت زیر عمل میکنیم.
1 2 3 4 5 6 7 | <?php foreach( $persons as $name ){ echo $name . "<br>" } ?> |
اگر با آرایه $ages
که یک آرایه انجمنی است، به صورت قبل عمل کنیم، صرفاً سن افراد (مقادیر آرایه یا valueها) را خواهیم داشت.
اما اگر اسم هر فرد (کلیدها) را نیز بخواهیم، میتوانیم مشابه قطعه کد زیر عمل کنیم.
1 2 3 4 5 6 7 | <?php foreach( ages as $name => $age ){ echo "Age of" . $name . "is: " . $age . "<br>"; } ?> |
برای کار با آرایهها در زبان PHP توابع مختلفی وجود دارد. دو مورد از پرکاربردترین توابع را در ادامه بررسی میکنیم.
تابع count()
یک ورودی گرفته و اندازه آرایه را به ما بازمیگرداند. منظور از اندازه آرایه، تعداد عناصر موجود در آرایه است.
<?php $test = array(5, 7, 11, 6, 14, 25); echo count($test); // 6 ?> |
در صورتی که یک آرایه چند بعدی داشته باشیم، تعداد عناصر (آرایههای) سطح اول را شمرده و برمیگرداند.
گاهی اوقات در یک برنامه نیاز داریم نوعِ متغیر را بررسی کرده و در صورت آرایه بودن ادامه دهیم. به کمک تابع is_array()
میتوان این کار را انجام داد.
تابع is_array()
یک متغیر به عنوان ورودی گرفته و نتیجه را به صورت boolean به دو حالت true یا false بازمیگرداند.
1 2 3 4 5 6 7 8 | <?php $var = "Test SabzDanesh text!"; $arr = array("SabzDanesh", "Learning"); echo is_array( $var ); // false echo is_array( $arr ); // true ?> |
آرایهها را میتوان به شیوههای مختلف مرتبسازی کرد. برای آشنایی با چگونگی مرتبسازی آرایهها در PHP به مقاله زیر مراجعه کنید.
در این مقاله با آرایهها در PHP آشنا شدیم. انواع آرایه را بررسی کرده و از هر یک مثالی دیدیم. به کمک حلقهها و ترفندهایی توانستیم با آرایهها کار کرده و مقادیر آنها تغییر داده یا بخوانیم. همچنین با پرکاربردترین توابع مربوط به آرایه در PHP آشنا شدیم و توانستیم اندازه آرایه را حساب کرده و آرایه بودن یک متغیر را نیز بررسی کنیم.
بحث آرایهها در زبان برنامه نویسی PHP بسیار گسترده و البته پر کاربرد است. در صورتی که میخواهید با کاربردهای خاص آرایه آشنا شوید، میتوانید به صفحه مستندات آن مراجعه کنید.
در به روزرسانیهای آینده این مقاله، به تاثیر عملگرها روی آرایه و چگونگی افزودن یا حذف یک عنصر در آرایه خواهیم پرداخت.
سون لرن • آموزش...برچسب : نویسنده : استخدام کار 7learn بازدید : 348