آموزش رایگان PHP

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

1405/04/04 00:22 محراب حسن زاده
آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مقدمه؛ چرا حلقه foreach در PHP از اهمیت بالایی برخوردار است؟

در زبان برنامه نویسی PHP، یکی از پرکاربردترین ساختارهای داده، آرایه‌ها (Arrays) هستند. برای دسترسی به عناصر درون یک آرایه و انجام عملیات روی آن‌ها، نیاز به یک ساختار تکرار داریم. اگرچه حلقه‌هایی مانند for و while نیز برای این کار وجود دارند، اما حلقه foreach اختصاصاً برای پیمایش آسان، ایمن و بهینه آرایه‌ها و شیء‌ها (Objects) طراحی شده است. استفاده از این حلقه احتمال بروز خطاهای خارج از محدوده (Out of bound) را به صفر می‌رساند.

۱. ساختار پایه حلقه foreach (فقط مقادیر آرایه)

در ساده‌ترین حالت، زمانی که فقط می‌خواهیم به مقادیر (Values) درون یک آرایه دسترسی داشته باشیم، از ساختار زیر استفاده می‌کنیم. در این ساختار در هر بار تکرار حلقه، مقدار عنصر فعلی به متغیر موقت انتصابی داده می‌شود.


$programmingLanguages = ["PHP", "JavaScript", "Python", "Go"];

foreach ($programmingLanguages as $language) {
    echo "زبان برنامه‌نویسی: " . $language . "
";
}

۲. پیمایش آرایه‌های انجمنی (همراه با کلید و مقدار)

در PHP، آرایه‌های انجمنی (Associative Arrays) بسیار محبوب هستند؛ یعنی آرایه‌هایی که کلید آن‌ها به جای عدد، یک رشته متنی است. برای دسترسی هم‌زمان به کلید (Key) و مقدار (Value) از ساختار زیر استفاده می‌کنیم:


$userAges = [
    "علی" => 25,
    "سارا" => 30,
    "رضا" => 28
];

foreach ($userAges as $name => $age) {
    echo "سن " . $name . " برابر است با: " . $age . " سال
";
}

۳. تغییر مقادیر آرایه با استفاده از ارجاع (Reference)

به طور پیش‌فرض، حلقه foreach روی یک کپی از آرایه کار می‌کند و تغییر متغیر موقت درون حلقه، آرایه اصلی را تغییر نمی‌دهد. اما اگر نیاز دارید مقادیر درون خود آرایه اصلی را در حین پیمایش تغییر دهید، باید از علامت & (امپرسند) قبل از نام متغیر استفاده کنید تا به آدرس اصلی خانه حافظه اشاره کند.


$prices = [100, 200, 300];

foreach ($prices as &$price) {
    $price = $price * 1.1; // افزایش ۱۰ درصدی قیمت‌ها
}

unset($price); // قطع ارتباط ارجاع برای جلوگیری از باگ‌های احتمالی در کدهای بعدی

نکته حیاتی طبق استاندارد گوگل: پس از پایان حلقه‌ای که در آن از ارجاع (Reference) استفاده کرده‌اید، حتماً متغیر مربوطه را با تابع unset() نابود کنید. در غیر این صورت، در کدهای بعدی اگر از همان متغیر استفاده شود، مقادیر آخرین عنصر آرایه شما ناخواسته دچار تغییر خواهند شد!

مزایای استفاده از foreach نسبت به سایر حلقه‌ها

  • خوانایی بالا: کد بسیار تمیزتر و قابل فهم‌تر از حلقه‌های تو در توی کلاسیک می‌شود.
  • امنیت بالا: نیازی به مدیریت دستی شمارنده حلقه (Counter) و بررسی پایان آرایه نیست.
  • سازگاری با انواع آرایه‌ها: بدون هیچ تغییری، هم روی آرایه‌های عددی و هم روی آرایه‌های کلید-مقداری کار می‌کند.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child
1402/06/10 18:22

آموزش Pseudo-classes در CSS: تغییر استایل عناصر با hover، focus و nth-child

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
1404/09/29 20:53

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی
1405/03/24 01:21

سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی

مطالعه بیشتر
آموزش کامل Super Global ها در PHP (متغیرهای سراسری)
1405/05/01 19:58

آموزش کامل Super Global ها در PHP (متغیرهای سراسری)

مطالعه بیشتر
آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif
1405/04/04 00:05

آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif

مطالعه بیشتر
آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع
1403/07/28 21:41

آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع

مطالعه بیشتر
نصب Vue.js و ایجاد پروژه ساده: آموزش گام‌به‌گام راه‌اندازی Vue
1402/06/28 00:41

نصب Vue.js و ایجاد پروژه ساده: آموزش گام‌به‌گام راه‌اندازی Vue

مطالعه بیشتر
درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی
1404/09/28 22:00

درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی

مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی
1403/08/10 21:59

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

مطالعه بیشتر
راهنمای کامل تگ‌های < img > و < a > در HTML: تصاویر و لینک‌ها
1402/05/21 00:27

راهنمای کامل تگ‌های < img > و < a > در HTML: تصاویر و لینک‌ها

مطالعه بیشتر
آموزش جامع دستور SELECT و نمایش اطلاعات دیتابیس طبق استانداردهای گوگل و سئو
1405/05/13 21:07

آموزش جامع دستور SELECT و نمایش اطلاعات دیتابیس طبق استانداردهای گوگل و سئو

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
1404/09/24 20:52

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد