با عرض سلام خدمت کاربران سایت پی وی لرن. در این جلسه قصد داریم تا به مبحث مهم آرایه (Array) در PHP بپردازیم.
همانطور که در جلسات قبل نیز اشاره کردیم، آرایه چندین مقدار با نوع های یکسان را در داخل یک متغیر ذخیره می کند.
پیش تر نیز به متغیر ها و آرایه در زبان php اشاره کرده ایم که می توانید برای آشنایی بیشتر به آن مراجعه نمایید.
یک آرایه متغیر خاصی هست که در یک زمان می تواند چندین مقدار را در خود جای دهد.
اگر شما لیستی از آیتم هایی داشته باشید و بخواهید آن ها را در متغیر های جداگانه ذخیره کنید،(مثل نام اتومبیل ها) نتیجه کار شبیه کد زیر خواهد بود
1 2 3 | $cars1 = "Volvo"; $cars2 = "BMW"; $cars3 = "Toyota"; |
حال اگر بخواهید دنبال یک اتومبیل خاص بگردید چه کار خواهید کرد؟ و اگر تعداد اتومبیل ها ۳۰۰ دستگاه بود چه؟
پاسخ سوال استفاده از آرایه است.
یک آرایه بسیاری از مقادیر را تحت یک نام ذخیره می کند و برای دسترسی به اعضای آرایه کافیست از اندیس آرایه استفاده کنیم.
در php از تابع ()array برای ساخت آرایه استفاده می شود.
سه نوع آرایه در php وجود دارد که به شرح زیر می باشد:
دو راه برای ساخت آرایه عددی داریم:
۱ – اندیس به صورت خودکار تخصیص پیدا کند(به یاد داشته باشید که اندیس ها همیشه از ۰ شروع می شوند)
1 | $cars = array("Volvo", "BMW", "Toyota"); |
۲ – اندیس ها را به صورت دستی تخصیص دهیم
1 2 3 | $cars[0] = "Volvo"; $cars[1] = "BMW"; $cars[2] = "Toyota"; |
مثال:
1 2 3 4 | <?php $cars = array("Volvo", "BMW", "Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . "."; ?> |
تابع ()count برای بدست آوردن طول یک آرایه (تعداد عناصر آرایه) استفاده می شود.
این تابع طول آرایه را به ما بر می گرداند.
1 2 3 4 | <?php $cars = array("Volvo", "BMW", "Toyota"); echo count($cars); ?> |
در مثال زیر با استفاده از حلقه for، به تمام عناصر یک آرایه دسترسی پیدا می کنیم.
1 2 3 4 5 6 7 8 9 | <?php $cars = array("Volvo", "BMW", "Toyota"); $arrlength = count($cars); for($x = 0; $x < $arrlength; $x++) { echo $cars[$x]; echo "<br>"; } ?> |
آرایه های انجمنی آرایه هایی هستند که از کلید نام ها (named keys) به جای اندیس عددی استفاده می کنند.
برای ساخت آرایه انجمنی نیز دو راه وجود دارد :
1 | $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); |
و یا
1 2 3 | $age['Peter'] = "35"; $age['Ben'] = "37"; $age['Joe'] = "43"; |
با استفاده از foreach می توانیم به تمام عناصر آرایه دسترسی پیدا کرده و آن ها را چاپ کنیم.
1 2 3 4 5 6 7 8 | <?php $age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43"); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?> |
تا اینجا ما از آرایه هایی استفاده می کردیم که فقط یه لیست از جفت مقدار/کلید بودند.
اما گاهی اوقات نیاز داریم تا مقادیری را با بیش از یک کلید را ذخیره کنیم. اینجاست که آرایه های چند بعدی به کمک مان خواهند آمد!
یک آرایه چند بعدی آرایه ای است که شامل یک یا بیش از یک آرایه می شود.
اما مدیریت آرایه هایی با بیش از سه بعد یا سطح، برای بیشتر مردم دشوار هست.
نکته: تعداد بعد یک آرایه، تعداد اندیس هایی که شما برای دسترسی به یک عنصر نیاز دارید را مشخص می کند.
به جدول زیر توجه کنید :
فروخته شده | موجودی | نام |
۱۸ | ۲۲ | Volvo |
۱۳ | ۱۵ | BMW |
۲ | ۵ | Saab |
۱۵ | ۱۷ | Land Rover |
ما می توانیم اطلاعات جدول بالا را در یک آرایه دو بعدی به صورت زیر ذخیره نماییم:
1 2 3 4 5 6 7 | $cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) ); |
می بینید که آرایه car$ شامل ۴ آرایه دیگر بوده و دو اندیس دارد: سطر و ستون
برای دسترسی به عناصر آرایه به می توانیم به صورت زیر عمل کنیم:
1 2 3 4 5 6 | <?php echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>"; echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>"; echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>"; echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>"; ?> |
خروجی کد بالا :
1 2 3 4 | Volvo: In stock: 22, sold: 18. BMW: In stock: 15, sold: 13. Saab: In stock: 5, sold: 2. Land Rover: In stock: 17, sold: 15. |
راه دیگر استفاده از یک حلقه for تودرتو می باشد.
به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 | <?php for ($row = 0; $row < 4; $row++) { echo "<p><b>Row number $row</b></p>"; echo "<ul>"; for ($col = 0; $col < 3; $col++) { echo "<li>".$cars[$row][$col]."</li>"; } echo "</ul>"; } ?> |