به کمک آرایه ها میتوان مقادیر زیادی را در یک متغیر نگهداری کرد. کسب مهارت در کار با آرایهها در برنامه نویسی، توانایی و کیفیت کار ما را افزایش میدهد
فرض کنید میخواهیم اسم سه نفر را ذخیره و از آنها استفاده کنیم. میتوان به راحتی با تعریف سه متغیر از نوع رشتهای، این اسامی را ذخیره و با آنها کار کرد. اما اگر این تعداد به صد یا هزار اسم برسد، کار کردن با تعداد زیادی متغیر، سخت و طاقتفرسا خواهد شد. اینجاست که آرایهها به کمک ما میآیند.
آرایه چیست؟
آرایه یک متغیر با امکان ذخیرهسازی چندین مقدار است. اندازه آرایه میتواند متفاوت باشد و بسته به نیاز ما تغییر کند. در زبان برنامه نویسی PHP نوع دادهایِ عناصر هر آرایه میتواند با هم یکسان بوده یا متفاوت باشد
در هنگام برنامه نویسی با زبان پی اچ پی، ممکن است بارها از آرایهها کمک بگیریم. از محاسبات و ذخیره سازی موقت اطلاعات گرفته تا دریافت اطلاعات از کاربر. کاربردهای آرایه با توجه به نیازهای ما در هنگام نوشتن یک برنامه تحت وب مشخص خواهد شد!
در حالت کلی میتوان اکثر کاربردها را در سه دسته زیر قرار داد.
- ذخیره سازی موقت چند داده
- محاسبات مختلف روی دادههای گروهی (مثلاً مرتب سازی یا حذف عناصر تکراری)
- کار با فیلدهای چندگانه (Multiple) ارسال شده از سمت کاربر توسط PHP
انواع آرایه در PHP
در حالت کلی شاید بتوان گفت، آرایه فقط یک نوع است! اما با توجه به ویژگیها و کاربرهای مختلف، اکثراً آرایه در PHP را به سه نوع تقسیمبندی میکنند.
1- آرایه فهرستی (آرایه عددی)
آرایه عددی (یا Numeric) که به آرایه فهرستی (یا Indexed) نیز معروف است سادهترین نوع آرایه است. این نوع آرایهها فقط شامل عناصر هستند.
آرایه زیر یک نوع آرایه عددی در PHP است. در این آرایه نام سه فرد را نگهداری میکنیم.
<?php $persons = array("Sara", "Omid", "Sam"); ?>
به هر کدام از عناصر موجود در آرایه یک عدد نسبت داده میشود. این عدد مشخص کننده موقعیت و جایگاه عنصر در کل آرایه است. شمارهگذاری از عدد صفر شروع شده و تا اندازه آرایه منهای یک ادامه پیدا میکند.
به کمک علامت []
در جلوی نام آرایه، میتوان به تک تک عناصر دست یافت.
<?php echo $person[1]; // Omid ?>
همانطور که میبینید خروجی این برنامه، عنصر دوم (با ایندکس 1) در آرایه است.
2- آرایه انجمنی (کلید و مقدار)
آرایههای انجمنی بسیار شبیه به آرایههای عددی هستند. با این تفاوت که به جای ایندکسِ عددی، یک کلیدتعریف میشود.
در آرایه انجمنی (Associative Array) هر مقدار دارای یک کلید است. این کلید توسط ما ایجاد شده و برای هر عنصر از آرایه یکتاست. برای دسترسی به عناصر آرایه انجمنی، در هنگام صدا زدن آرایه، در داخل [ ]
مقدار کلید را قرار میدهیم.
یک مثال: فرض کنید میخواهیم در یک آرایه سن افراد مختلف را ذخیره کنیم. مقادیر ما سن هر فرد و کلیدها نام آنهاست. پس آرایهای مشابه زیر خواهیم داشت.
$ages = array( "sara" => 19, "omid" => 20, "sam" => 22 );
حال برای دسترسی به سن سارا، کافی است آرایه را به صورت زیر صدا بزنیم.
echo $ages["sara"];
مشابه آرایههای عددی، میتوان عناصر دیگر این آرایه را به صورت زیر نیز تعریف کرد.
$ages["nazanin"] = 15;
3- آرایه چند بعدی (ماتریس)
آرایههای چند بعدی، از نظر ساختار یا نوع تعریف تفاوت خاصی با دو نوع قبلی ندارند!
در آرایه دو بعدی مقدار عناصر ما خودشان یک آرایه هستند. این وضعیت میتواند به صورت تو در تو برای آرایههای سهبعدی، چهار بعدی و … تکرار شود.
فرض کنید میخواهیم آرایهای داشته باشیم که اطلاعات افراد مختلف را در خود نگهداری کند. این آرایه میتواند یک آرایه دو بعدی باشد.
هر عنصر از آرایه اصلی، یک آرایه است که اطلاعات یکی از افراد در آن قرار گرفته است.
آرایههایی که به صورت چند بعدی تعریف میشوند میتوانند عددی، انجمنی یا ترکیبی از اینها باشند.
آرایه چند بعدی زیر، نام و سن چند فرد را در خود نگهداری میکند.
<?php // Define Multidimensional Array: $users = [ [ "name" => "Sara", "age" => 19, "email" => "sara@domain.com", ], [ "name" => "Omid", "age" => 20, "email" => "omid@domain.com", ], [ "name" => "Sam", "age" => 22, "email" => "sam@domain.com", ], ]; ?>
افزودن عضو جدید به آرایه PHP
برای افزودن یک یا چند عنصر جدید به آرایه، میتوان از تابع array_push()
استفاده کرد. این تابع حداقل دو ورودی لازم دارد.
- ورودی اول متغیری است که آرایه را مشخص میکند.
- ورودی دوم به بعد، عناصر جدید ما هستند.
بنابراین میتوانیم به هر تعداد که لازم داریم، عضو جدید به آرایه اضافه کنیم
<?php $names = ["Sara", "Omid"]; array_push($names, "Sam", "Nazanin"); // Array([0]=>Sara [1]=>Omid [2]=>Sam [3]=>Nazanin) ?>
چاپ آرایه در php
در خروجی برنامه و یا هنگام تست کردن آن، بارها نیاز داریم تا مقادیر یک آرایه را در خروجی چاپ کرده و ببینیم. با استفاده از حلقهها و دستور echo
میتوان مقادیر درون یک آرایه را چاپ کرد.
اما نوشتن حلقههای مختلف برای بررسی محتویات چند آرایه شاید کار راحتی نباشد. در این جا دو تابع برای چاپ عناصر آرایه معرفی میکنیم.
تابع اول: تابع print_r
تابع print_r()
آرایه را گرفته و در خروجی تمام مقادیر به همراه ایندکسها (یا کلیدها) را چاپ میکند.
$arr = array( "sara", "omid", "sam" ); print_r( $arr ); // Array( [0]=>sara [1]=>omid [2]=>sara )
اگر میخواهید خروجی بهتری داشته باشید، میتوانید قبل و بعد از خروجی این تابع، یک تگ <pre>
قرار دهید. با این کار فواصل ایجاد شده، در صفحه HTML نیز نمایش داده میشود.
<?php $arr = ["sara", "omid", "sam"]; echo "<pre>"; print_r($arr); echo "</pre>"; ?>
خروجی این کد در صفحه HTML چیزی شبیه زیر خواهد شد.
Array ( [0] => sara [1] => omid [2] => sam )
تابع دوم: تابع var_dump
تابع var_dump()
آرایه را به عنوان ورودی گرفته و از نظر ظاهری چیزی شبیه به تابع اول چاپ میکند. با این تفاوت که نوع دادهای هر کدام از عناصر را نیز مشخص میکند.
<?php $arr = array( "sara", "omid", "sam" ); echo "<pre>"; var_dump( $ar r); echo "</pre>"; ?>
خروجی کد بالا چیزی شبیه زیر خواهد شد:
array(3) { [0] => string(4) "sara" [1] => string(4) "omid" [2] => string(3) "sam" }
جایگزین کردن مقدار جدید در آرایه
هر چند کم اتفاق میافتد، اما گاهی اوقات نیاز داریم مقدار یک عنصر از آرایه را بازنویسی (overwrite) یا با مقدار جدیدی عوض کنیم.
برای این کار میتوان دقیقا مشابه با تعریف یک مقدار برای یک خانه از آرایه عمل کرد. به این صورت که با فراخوانی عنصر مورد نظر، مقدار دلخواه را در آن میریزیم. برای درک بهتر، به قطعه کد زیر توجه کنید.
<?php // Changing an Array Element: $arr = ["Red", "Yellow", "Green"]; $arr[1] = "Blue"; // new array: // array( "Red", "Blue", "Green" ) ?>
در این جا مقدار دومین عضوِ آرایه را از Yellow به Blue تغییر دادیم.
استفاده از آرایه در حلقه
در زبان برنامه نویسی PHP یک حلقه مخصوص آرایهها به نام foreach
داریم. به کمک این تابع میتوان هر نوع آرایهای را مورد بررسی قرار داد.
اگر صرفاً آرایه عددی داشته باشیم، میتوان به کمک یک حلقه ساده for
، اندیسها را افزایش داده و به تک تک عناصر دسترس داشت. ما در اینجا صرفاً حلقه foreach()
را بررسی میکنیم.
اگر آرایه $persons
یک آرایه عددی باشد، برای دسترسی به عناصر آن به صورت زیر عمل میکنیم.
<?php foreach( $persons as $name ){ echo $name . "<br>" } ?>
اگر با آرایه $ages
که یک آرایه انجمنی است، به صورت قبل عمل کنیم، صرفاً سن افراد (مقادیر آرایه یا valueها) را خواهیم داشت.
اگر اسم هر فرد (کلیدهای آرایه) را نیز بخواهیم، میتوانیم مشابه قطعه کد زیر عمل کنیم.
<?php foreach ($ages as $name => $age) { echo "Age of" . $name . "is: " . $age . "<br>"; } ?>
بدون دیدگاه