آموزش برنامه نویسی PHP-جلسه ششم

آموزش برنامه نویسی PHP-جلسه ششم

برای آموزش foreach ابتدا باید درباره آرایه ها تا حدودی شناخت داشته باشیم.

در قسمت ششم آموزش PHP از صفر، وارد یکی از مباحث مهم و کاربردی برنامه نویسی یعنی آرایه ها (Arrays) می شویم. آرایه ها به ما اجازه می دهند چندین مقدار مرتبط را در یک متغیر ذخیره کنیم و به شکل ساده تری روی مجموعه ای از داده ها کار کنیم.

در این جلسه ابتدا با انواع آرایه ها در PHP آشنا می شویم و سپس نحوه شمارش، پیمایش، مرتب سازی و کار با آرایه های چندبعدی را یاد می گیریم. در ادامه نیز به سراغ حلقه foreach و دستورات break و continue می رویم.

سرفصل های جلسه ششم آموزش 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]
];

?>

در این مثال یک آرایه اصلی داریم که هر عنصر آن یک آرایه دیگر است.

می توان ساختار آن را تقریبا به شکل یک جدول در نظر گرفت:

خودرومقدار ۱مقدار ۲
Volvo2218
BMW1513
Saab52
Land Rover1715

دسترسی به عناصر آرایه چندبعدی

برای دسترسی به یک عنصر در آرایه چندبعدی باید اندیس ردیف و ستون را مشخص کنیم.

مثلا:

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 به من این امکان را داده است که پروژه‌ها را از مرحله ایده و طراحی تا توسعه و اجرا، با دیدی جامع دنبال کنم. در فرآیند توسعه، توجه ویژه‌ای به کدنویسی تمیز، معماری مناسب، طراحی واکنش‌گرا، عملکرد مطلوب و تجربه کاربری روان دارم.

TEST_VALUE_123
https://t.me/artarasaneh
tel:09193426251
https://wa.me/+989193426251
https://instagram.com/artarasaneh_com