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

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
1402/06/28 23:53

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on

مطالعه بیشتر
آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل
1405/05/01 20:10

آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل

مطالعه بیشتر
آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو
1402/05/21 23:48

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

مطالعه بیشتر
آموزش کار با Local Storage و Session Storage در جاوا اسکریپت: ذخیره‌سازی داده‌ها در مرورگر
1403/08/03 17:08

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

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

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

مطالعه بیشتر
مدیریت ترتیب نمایش با z-index در CSS: آموزش کامل و کاربردی
1403/08/11 21:28

مدیریت ترتیب نمایش با z-index در CSS: آموزش کامل و کاربردی

مطالعه بیشتر
آموزش کامل کار با تابع password_verify در PHP (امنیت رمز عبور)
1405/05/14 22:09

آموزش کامل کار با تابع password_verify در PHP (امنیت رمز عبور)

مطالعه بیشتر
آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)
1405/05/04 23:34

آموزش کامل و اصولی اتصال PHP به پایگاه داده MySQL (به روش PDO و MySQLi)

مطالعه بیشتر
آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
1403/08/10 21:33

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

مطالعه بیشتر
مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1402/06/28 00:07

مفهوم متغیرها و انواع داده در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها
1403/07/04 17:40

مفاهیم پیشرفته اشیاء در جاوا اسکریپت: مدیریت خصوصیات و متدها

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
1402/06/28 23:35

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر

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