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

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

16م تیر 1405 محراب حسن زاده
آموزش کامل حلقه 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 ."< br / >";
}

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

در 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) و بررسی پایان آرایه نیست.
  • سازگاری با انواع آرایه‌ها: بدون هیچ تغییری، هم روی آرایه‌های عددی و هم روی آرایه‌های کلید-مقداری کار می‌کند.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر
3م آبان 1403

آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر

مطالعه بیشتر
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل
6م شهریور 1402

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

مطالعه بیشتر
آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش
2م شهریور 1403

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

مطالعه بیشتر
آموزش جامع حلقه‌های while و do while در PHP به زبان ساده و کاربردی
4م تیر 1405

آموزش جامع حلقه‌های while و do while در PHP به زبان ساده و کاربردی

مطالعه بیشتر
آموزش اصول Web APIs و نحوه استفاده از آن‌ها در جاوا اسکریپت: راهنمای کامل با مثال‌ها
1م آبان 1403

آموزش اصول Web APIs و نحوه استفاده از آن‌ها در جاوا اسکریپت: راهنمای کامل با مثال‌ها

مطالعه بیشتر
آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب
15م خرداد 1405

آموزش ساخت اولین فایل PHP و بررسی ساختار تگ‌ها بر اساس استاندارد وب

مطالعه بیشتر
آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)
21م خرداد 1405

آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)

مطالعه بیشتر
چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی
2م شهریور 1403

چگونه یک فوتر چسبان در CSS بسازیم: آموزش ساخت فوتر ثابت و همیشگی

مطالعه بیشتر
اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ
28م شهریور 1402

اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ

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

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

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

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

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
25م مرداد 1402

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر

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