
آموزش برنامه نویسی PHP-جلسه ششم
برای آموزش foreach ابتدا باید درباره آرایه ها تا حدودی شناخت داشته باشیم.
در قسمت ششم آموزش PHP از صفر، وارد یکی از مباحث مهم و کاربردی برنامه نویسی یعنی آرایه ها (Arrays) می شویم. آرایه ها به ما اجازه می دهند چندین مقدار مرتبط را در یک متغیر ذخیره کنیم و به شکل ساده تری روی مجموعه ای از داده ها کار کنیم.
در این جلسه ابتدا با انواع آرایه ها در PHP آشنا می شویم و سپس نحوه شمارش، پیمایش، مرتب سازی و کار با آرایه های چندبعدی را یاد می گیریم. در ادامه نیز به سراغ حلقه foreach و دستورات break و continue می رویم.
Table of contents [Show]
- 1 سرفصل های جلسه ششم آموزش PHP
- 2 آرایه (Array) در PHP چیست؟
- 3 تابع count() در PHP
- 4 آرایه های اندیسی (Indexed Arrays)
- 5 پیمایش آرایه با حلقه for
- 6 آرایه های انجمنی (Associative Arrays)
- 7 روش دیگری برای ساخت Associative Array
- 8 حلقه foreach در PHP
- 9 مثال foreach با آرایه اندیسی
- 10 foreach در آرایه های انجمنی
- 11 تفاوت for و foreach در PHP
- 12 دستور break در PHP
- 13 دستور continue در PHP
- 14 آرایه های چندبعدی (Multidimensional Arrays)
- 15 دسترسی به عناصر آرایه چندبعدی
- 16 استفاده از حلقه های تو در تو برای آرایه های چندبعدی
- 17 مرتب سازی آرایه ها در PHP
- 18 تابع sort()
- 19 تابع rsort()
- 20 تابع asort()
- 21 تابع arsort()
- 22 تابع ksort()
- 23 تابع krsort()
- 24 جمع بندی جلسه ششم آموزش PHP
سرفصل های جلسه ششم آموزش PHP
- آرایه چیست؟
- آرایه های اندیسی (Indexed Arrays)
- آرایه های انجمنی (Associative Arrays)
- تابع
count() - حلقه
forبرای پیمایش آرایه ها - حلقه
foreach - کار با کلید و مقدار در
foreach - دستورات
breakوcontinue - آرایه های چندبعدی (Multidimensional Arrays)
- مرتب سازی آرایه ها در PHP
- توابع
sort()وrsort() - توابع
asort()وarsort() - توابع
ksort()وkrsort()
آرایه (Array) در PHP چیست؟
آرایه یکی از ساختارهای داده مهم در PHP است که به ما اجازه می دهد چند مقدار را در یک متغیر ذخیره کنیم.
برای مثال، فرض کنید نام چند خودرو را در برنامه خود داریم. به جای اینکه برای هر خودرو یک متغیر جداگانه تعریف کنیم، می توانیم همه آنها را در یک آرایه قرار دهیم:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo $cars[0];
echo $cars[1];
echo $cars[2];
?>
در این مثال متغیری به نام $cars ساخته ایم و سه مقدار Volvo، BMW و Toyota را داخل آن قرار داده ایم.
در آرایه های اندیسی، اولین عنصر با اندیس 0 شروع می شود. بنابراین:
$cars[0] → Volvo
$cars[1] → BMW
$cars[2] → Toyota
تعریف آرایه با سینتکس کوتاه
در نسخه های جدید PHP می توان آرایه را با [] نیز تعریف کرد:
<?php
$cars = ["Volvo", "BMW", "Toyota"];
?>
این روش امروزه بسیار رایج است و خوانایی کد را نیز بهتر می کند.
تابع count() در PHP
گاهی لازم است بدانیم یک آرایه چند عنصر دارد. برای این کار می توانیم از تابع count() استفاده کنیم.
<?php
$cars = ["Volvo", "BMW", "Toyota"];
echo count($cars);
?>
خروجی:
3
تابع count() تعداد عناصر موجود در آرایه را برمی گرداند.
این تابع زمانی بسیار کاربردی است که بخواهیم با استفاده از حلقه for روی تمام عناصر یک آرایه حرکت کنیم.
آرایه های اندیسی (Indexed Arrays)
در آرایه های اندیسی، هر عنصر یک شماره یا Index دارد. به صورت پیش فرض، اندیس اولین عنصر 0 است.
مثال:
<?php
$cars = ["Volvo", "BMW", "Toyota", "Ford"];
echo $cars[0];
echo "<br>";
echo $cars[1];
echo "<br>";
echo $cars[2];
echo "<br>";
echo $cars[3];
?>
خروجی:
Volvo
BMW
Toyota
Ford
در اینجا هر مقدار با استفاده از اندیس خودش قابل دسترسی است.
پیمایش آرایه با حلقه for
اگر آرایه بزرگی داشته باشیم، چاپ کردن تک تک عناصر روش مناسبی نیست. در چنین شرایطی می توانیم از حلقه for استفاده کنیم.
<?php
$cars = ["Volvo", "BMW", "Toyota", "Ford"];
$arrLength = count($cars);
for ($x = 0; $x < $arrLength; $x++) {
echo $cars[$x];
echo "<br>";
}
?>
در این مثال ابتدا تعداد عناصر آرایه را با count() به دست آورده ایم و سپس با حلقه for از عنصر اول تا آخر حرکت کرده ایم.
آرایه های انجمنی (Associative Arrays)
در آرایه های اندیسی، برای دسترسی به عناصر از اعداد استفاده می کنیم. اما در Associative Array می توانیم به جای اعداد، کلیدهای معنادار تعریف کنیم.
برای مثال:
<?php
$age = [
"Peter" => 35,
"Ben" => 37,
"Joe" => 43
];
echo $age["Peter"];
?>
خروجی:
35
در اینجا:
Peter → 35
Ben → 37
Joe → 43
نام افراد نقش Key و سن آنها نقش Value را دارد.
به همین دلیل می توانیم به جای استفاده از یک عدد، از یک نام معنادار برای دسترسی به مقدار استفاده کنیم.
مثلا:
echo $age["Ben"];
خروجی:
37
روش دیگری برای ساخت Associative Array
می توانیم ابتدا یک آرایه خالی ایجاد کنیم و سپس عناصر آن را اضافه کنیم:
<?php
$age = [];
$age["Peter"] = 35;
$age["Ben"] = 37;
$age["Joe"] = 43;
echo $age["Peter"];
?>
این روش زمانی مفید است که اطلاعات آرایه به صورت مرحله ای در برنامه ایجاد یا دریافت شوند.
حلقه foreach در PHP
یکی از مهم ترین ابزارها برای کار با آرایه ها در PHP، حلقه foreach است.
foreach برای پیمایش عناصر آرایه استفاده می شود و به خصوص زمانی که می خواهیم بدون درگیر شدن با شماره اندیس، تک تک عناصر آرایه را بررسی کنیم، بسیار کاربردی است.
ساختار کلی foreach به شکل زیر است:
foreach ($array as $value) {
// code
}
در این ساختار:
$arrayآرایه ای است که می خواهیم روی آن حرکت کنیم.$valueمتغیری است که در هر مرحله مقدار عنصر فعلی آرایه را دریافت می کند.
مثال foreach با آرایه اندیسی
<?php
$colors = ["red", "green", "blue", "yellow"];
foreach ($colors as $value) {
echo $value;
echo "<br>";
}
?>
خروجی:
red
green
blue
yellow
در هر بار اجرای حلقه، مقدار یکی از عناصر آرایه داخل متغیر $value قرار می گیرد.
foreach در آرایه های انجمنی
در آرایه های انجمنی معمولا به هر دو مورد Key و Value نیاز داریم.
برای این کار می توانیم از ساختار زیر استفاده کنیم:
foreach ($array as $key => $value) {
// code
}
مثال:
<?php
$age = [
"Peter" => 35,
"Ben" => 37,
"Joe" => 43
];
foreach ($age as $name => $value) {
echo $name . " = " . $value;
echo "<br>";
}
?>
خروجی:
Peter = 35
Ben = 37
Joe = 43
در این مثال:
$name → کلید آرایه
$value → مقدار آرایه
بنابراین foreach یکی از بهترین روش ها برای نمایش اطلاعات موجود در آرایه های انجمنی است.
تفاوت for و foreach در PHP
هر دو حلقه for و foreach می توانند برای پیمایش آرایه ها استفاده شوند، اما کاربرد آنها کمی متفاوت است.
در for معمولا با اندیس آرایه کار می کنیم:
for ($i = 0; $i < count($cars); $i++) {
echo $cars[$i];
}
اما در foreach مستقیما به مقدار هر عنصر دسترسی داریم:
foreach ($cars as $car) {
echo $car;
}
به همین دلیل، برای پیمایش ساده آرایه ها، foreach معمولا خواناتر و راحت تر است.
دستور break در PHP
گاهی اوقات می خواهیم حلقه قبل از اینکه تمام شود متوقف شود. در چنین شرایطی از دستور break استفاده می کنیم.
مثال:
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
break;
}
echo "The number is: $x <br>";
}
?>
در این مثال، زمانی که مقدار $x به 4 برسد، دستور break اجرا شده و حلقه کاملا متوقف می شود.
خروجی:
The number is: 0
The number is: 1
The number is: 2
The number is: 3
دستور continue در PHP
دستور continue با break تفاوت مهمی دارد.
break باعث توقف کامل حلقه می شود، اما continue فقط اجرای همان مرحله را متوقف می کند و حلقه به مرحله بعد می رود.
مثال:
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
continue;
}
echo "The number is: $x <br>";
}
?>
در اینجا وقتی $x برابر 4 باشد، آن مرحله نادیده گرفته می شود اما حلقه ادامه پیدا می کند.
خروجی شامل اعداد زیر خواهد بود:
0
1
2
3
5
6
7
8
9
بنابراین:
break → توقف کامل حلقه
continue → رد کردن مرحله فعلی و ادامه حلقه
آرایه های چندبعدی (Multidimensional Arrays)
گاهی اوقات اطلاعات ما ساختار پیچیده تری دارند و یک آرایه ساده کافی نیست.
در چنین شرایطی می توانیم از Multidimensional Arrays یا آرایه های چندبعدی استفاده کنیم.
آرایه چندبعدی، آرایه ای است که عناصر آن می توانند خودشان آرایه باشند.
برای مثال:
<?php
$cars = [
["Volvo", 22, 18],
["BMW", 15, 13],
["Saab", 5, 2],
["Land Rover", 17, 15]
];
?>
در این مثال یک آرایه اصلی داریم که هر عنصر آن یک آرایه دیگر است.
می توان ساختار آن را تقریبا به شکل یک جدول در نظر گرفت:
| خودرو | مقدار ۱ | مقدار ۲ |
|---|---|---|
| Volvo | 22 | 18 |
| BMW | 15 | 13 |
| Saab | 5 | 2 |
| Land Rover | 17 | 15 |
دسترسی به عناصر آرایه چندبعدی
برای دسترسی به یک عنصر در آرایه چندبعدی باید اندیس ردیف و ستون را مشخص کنیم.
مثلا:
echo $cars[0][0];
خروجی:
Volvo
یا:
echo $cars[1][1];
خروجی:
15
اولین اندیس مشخص می کند در کدام آرایه داخلی قرار داریم و دومین اندیس عنصر مورد نظر را مشخص می کند.
استفاده از حلقه های تو در تو برای آرایه های چندبعدی
برای پیمایش یک آرایه چندبعدی می توانیم از دو حلقه for استفاده کنیم:
<?php
$cars = [
["Volvo", 22, 18],
["BMW", 15, 13],
["Saab", 5, 2],
["Land Rover", 17, 15]
];
for ($row = 0; $row < count($cars); $row++) {
for ($col = 0; $col < count($cars[$row]); $col++) {
echo $cars[$row][$col];
echo " ";
}
echo "<br>";
}
?>
در اینجا حلقه اول بین ردیف ها حرکت می کند و حلقه دوم عناصر هر ردیف را بررسی می کند.
مرتب سازی آرایه ها در PHP
PHP چندین تابع آماده برای مرتب سازی آرایه ها در اختیار ما قرار می دهد.
برخی از مهم ترین آنها عبارتند از:
| تابع | کاربرد |
|---|---|
sort() | مرتب سازی صعودی آرایه |
rsort() | مرتب سازی نزولی آرایه |
asort() | مرتب سازی Associative بر اساس Value به صورت صعودی |
arsort() | مرتب سازی Associative بر اساس Value به صورت نزولی |
ksort() | مرتب سازی Associative بر اساس Key به صورت صعودی |
krsort() | مرتب سازی Associative بر اساس Key به صورت نزولی |
تابع sort()
تابع sort() یک آرایه را به صورت صعودی مرتب می کند.
<?php
$numbers = [5, 2, 8, 1, 4];
sort($numbers);
print_r($numbers);
?>
نتیجه:
1 2 4 5 8
برای مرتب سازی رشته ها نیز می توان از sort() استفاده کرد.
تابع rsort()
اگر بخواهیم آرایه را به صورت نزولی مرتب کنیم، از rsort() استفاده می کنیم:
<?php
$numbers = [5, 2, 8, 1, 4];
rsort($numbers);
print_r($numbers);
?>
نتیجه:
8 5 4 2 1
تابع asort()
تابع asort() برای آرایه های انجمنی استفاده می شود و عناصر را بر اساس Value به صورت صعودی مرتب می کند.
<?php
$age = [
"Peter" => 35,
"Ben" => 20,
"Joe" => 43
];
asort($age);
print_r($age);
?>
در این حالت ترتیب بر اساس سن افراد خواهد بود، اما کلیدهای آنها حفظ می شود.
تابع arsort()
تابع arsort() مشابه asort() است، با این تفاوت که مرتب سازی بر اساس مقدار به صورت نزولی انجام می شود.
<?php
$age = [
"Peter" => 35,
"Ben" => 20,
"Joe" => 43
];
arsort($age);
print_r($age);
?>
تابع ksort()
اگر بخواهیم یک آرایه انجمنی را بر اساس Key به صورت صعودی مرتب کنیم، از ksort() استفاده می کنیم:
<?php
$age = [
"Peter" => 35,
"Ben" => 20,
"Joe" => 43
];
ksort($age);
print_r($age);
?>
در این حالت ترتیب بر اساس نام کلیدها خواهد بود.
تابع krsort()
تابع krsort() نیز آرایه انجمنی را بر اساس Key مرتب می کند، اما به صورت نزولی:
<?php
$age = [
"Peter" => 35,
"Ben" => 20,
"Joe" => 43
];
krsort($age);
print_r($age);
?>
جمع بندی جلسه ششم آموزش PHP
در این جلسه با یکی از مهم ترین ساختارهای داده در PHP یعنی Array آشنا شدیم. آرایه ها در پروژه های واقعی کاربرد بسیار زیادی دارند و برای ذخیره و مدیریت مجموعه ای از اطلاعات استفاده می شوند.
در این جلسه یاد گرفتیم:
- آرایه چیست و چگونه ساخته می شود.
- چگونه با Indexed Array کار کنیم.
- چگونه از Associative Array استفاده کنیم.
- با تابع
count()تعداد عناصر آرایه را به دست بیاوریم. - چگونه آرایه ها را با
forپیمایش کنیم. - چگونه از
foreachبرای پیمایش آرایه ها استفاده کنیم. - چگونه Key و Value را در
foreachدریافت کنیم. - تفاوت
breakوcontinueچیست. - چگونه آرایه های چندبعدی ایجاد و پیمایش کنیم.
- چگونه آرایه ها را با توابع مختلف مرتب کنیم.
در قسمت های بعدی آموزش PHP می توانیم از همین مفاهیم برای ساخت برنامه های کاربردی تر استفاده کنیم. تسلط بر آرایه ها و حلقه ها یکی از پایه های مهم برای یادگیری PHP و ورود به مباحث پیشرفته تر برنامه نویسی است.

مریم گوهرزاد
مدرس و بنیانگذار هلدینگ آرتا رسانه. برنامه نویس و محقق حوزه بلاکچین و توسعهدهنده بلاکچین | متخصص Solidity | توسعهدهنده وب Full-Stackمن یک توسعهدهنده علاقهمند به فناوریهای بلاکچین و وب ۳ هستم و در زمینه Solidity، توسعه قراردادهای هوشمند و ساخت برنامههای غیرمتمرکز (DApps) فعالیت میکنم. تمرکز من بر طراحی و پیادهسازی راهکارهایی است که در کنار بهرهگیری از فناوریهای نوین، عملکرد مناسب، امنیت و تجربه کاربری مطلوبی ارائه دهند.در کنار تخصص در حوزه بلاکچین، به عنوان یک توسعهدهنده وب Full-Stack نیز در طراحی و توسعه وبسایتها و برنامههای تحت وب فعالیت میکنم. تجربه کار در بخشهای Front-End و Back-End به من این امکان را داده است که پروژهها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژهای به کدنویسی تمیز، معماری مناسب، طراحی واکنشگرا، عملکرد مطلوب و تجربه کاربری روان دارم.



