60% تخفیف ویژه دوره تخصصی وردپرس به مدت محدود مشاهده دوره

آموزش حلقه foreach در php مخصوص آرایه

دستور foreach

 

آموزش حلقه foreach در php ، قسمت نهایی از آموزش های مبحث حلقه ها در php است که قصد داریم در این بخش به آن بپردازیم. حلقه foreach یکی از مهم ترین دستورات حلقه ای در php است که مخصوص آرایه هاست. خلاصه و مفید دستور foreach کارش این هست که یک آرایه دریافت میکند و اعضای اون آرایه را یکی یکی تبدیل به رشته میکند و برمیگرداند. درحقیقت با هربار تکرار حلقه، یکی از اعضای آرایه به ترتیب برگردانده میشود تا زمانی که به آخرین عوض آرایه برسد. برای درک کامل آموزش حلقه foreach در php حتما ویدیوی آموزشی بالا را ببینید

 

 

ساختار foreach در php

ساختار foreach در php ، دو پارامتر ورودی دارد.

  1. آرایه (array$) : نام آرایه ای است که قصد داریم عملیات خاصی را روی آن انجام دهیم.
  2. متغیر (value$) : این متغیر بصورت دلخواه انتخاب می شود و در هر دور حلقه، عنصر داخل آن قرار میگیرد تا عملیات بر روی آن اجرا شود. در دور بعد عنصر بعدی با قبلی جایگزین می شود.

یک قسمت دیگر نیز در ساختار foreach در php وجود دارد که بلاک حلقه نام دارد و عملیات مربوط به حلقه را تعریف می کند. در هر دور از حلقه این عملیات یکبار بر روی تک تک عناصر آرایه اجرا می شود.

در قطعه کد زیر ساختار کلی یک حلقه for each در php  را مشاهده می کنید:

همانطور که در این کد ملاحظه می کنید یک کلمه کلیدی as نیز در ساختار حلقه for each در php وجود دارد که بعد از نام آرایه قرار می گیرد و بلافاصله پس از آن یک متغیر برای نگهداری آن عنصر از آرایه، تعریف می شود .

 

 

مثال از دستور foreach در php

در ادامه یک مثال از دستور foreach در php را بررسی می کنیم تا شما بهتر با کاربرد این دستور آشنا شوید.

این کد یکی از ساده ترین کدهای قابل ساخت با این دستور است. در این کد عناصر آرایه توسط دستور foreach در php ، یکی یکی پیمایش شده و در خروجی با دستور echo نمایش داده می شوند. متغیر در این دستور tempnumber است که در هر دور مقدار عنصر فعلی آرایه را به خود می گیرد. خروجی این دستور به صورت زیر است:

 

همانطور که در قسمت آموزش آرایه در php گفته شد در برخی آرایه ها از ایندکس یا کلید برای خانه های آرایه استفاده می شود. به این نوع آرایه، آرایه های مشارکتی یا associative گفته می شود. حالت دوم استفاده از حلقه foreach در php ، برای این نوع آرایه ها است. برای این کار به روش زیر عمل می کنیم:

 

به عنوان مثال برای آرایه مشارکتی زیر می توانیم به این صورت عمل کنیم:

خروجی این تابع به صورت زیر است:

 

در این آرایه سه ایندکس از نوع رشته داریم و می خواهیم در خروجی این ایندکس ها را نیز نمایش دهیم. حالت دوم استفاده از حلقه foreach در php ، بیشتر زمانی استفاده می شود که به اندیس ها و کلیدها در آرایه نیاز باشد. اگرچه می توان از این روش برای نمایش اندیس در آرایه های معمولی نیز استفاده کرد. مثلا در مثال اول که ما یک آرایه معمولی برای اعداد ۱ تا ۵ داریم می توانیم از این نوع حلقه برای نمایش اندیس هر خانه آرایه استفاده کنیم . کد زیر این حالت را نشان می دهد.

خروجی این تابع بصورت زیر نمایش داده می شود:

 

 

دستورات شرطی در حلقه for each در php

دستورات شرطی در حلقه for each در php در مواقعی استفاده می شود که می خواهیم علاوه بر پیمایش آرایه، یک شرط را نیز روی آن بررسی کنیم. در این حالت تامی خانه های آرایه را مانند روال قبلی پیمایش می کنیم و روی تک تک این خانه شرط مورد نظر را بررسی می کنیم. قطعه کد نیز نمونه ای از این نوع دستور foreach در php را نشان می دهد:

خروجی این دستور به صورت زیر نمایش داده می شود:

 

همانطور که ملاحظه می کنید در این شرط بررسی شده که در جایی که مقدار متغیر برابر با java بود از دستور continue استفاده می کند. کاربرد دو دستور continue و break در حلقه ها را بطور کامل در قسمت های مربوط به آموزش حلقه for و آموزش حلقه while توضیح داده ایم که می توانید مطالعه نمایید. دستور continue باعث پرش کد از این دور در حلقه می شود و بنابراین در جایی که متغیر مقدار java به خود می گیرد، پرش صورت گرفته و این مقدار چاپ نمی شود.

به همین صورت می توان از دستور break نیز استفاده نمود. همانطور که پیشتر گفته شد این دستور برای خروج کامل از حلقه استفاده می شود. در کد زیر با استفاده از این دستور پیمایش خانه های بعدی آرایه متوقف شده است.

بر همین اساس خروجی این کد بصورت زیر است:

 

مرتب سازی آرایه ها با foreach

یکی از بهترین روش ها برای مرتب سازی آرابه ها استفاده از دستور foreach در php است. با کمک این حلقه می توانید آرایه های ساده و مشارکتی را به صورت صعودی و نزولی مرتب کنید. توابع مرتب سازی sort، rsort، asort، ksort، arsort و krsort است. حرف r اول تابع برای مرتب سازی نزولی، حرف k برای مرتب سازی براساس کلید و حرف a برای مرتب سازی براساس مقدار است. در ادامه یک مثال از مرتب سازی آرایه بصورت صعودی با کمک حلقه foreach را می بینیم.

همانطور که در این مثال می بینید با استفاده از تابع sort آرایه ما بصورت صعودی مرتب می شود و با کمک حلقه foreach تک تک عناصر آرایه مرتب شده نمایش داده می شود.

حال اگر بخواهیم می توانیم بجای آرایه معمولی از آرایه های مشارکتی نیز استفاده کنیم. در بخش آموزش آرایه ها در php بطور مفصل در مورد آرایه های مشارکتی صحبت کردیم. بطور خلاصه باید بگوییم یک آرایه مشارکتی آرایه ای است که هر خانه از آن از دو مولفه کلید و مقدار تشکیل شده است. حال ببینیم یک آرایه مشارکتی چگونه با کمک تابع sort و حلقه foreach مرتب می شود. برای درک این مطلب به مثال زیر توجه کنید:

در این آرایه مشارکتی یکسری نام کشور داریم که نام هر کدام تعداد خطوط هوایی آن کشور اشاره می کند. با کمک ارایه ksort این آرایه براساس کلیدهایش یعنی نام کشورها مرتب می شود. خروجی تابع بالا به صورت زیر است:

Argentina 1138
Bolivia 855
Brazil 4093
Canada 1467
Colombia 836
Indonesia 673
Mexico 1714
Paraguay 799
Russia 1218
United States 13513

تفاوت for و foreach در php

در این بخش به بررسی تفاوت دستور for و دستور foreach در php می پردازیم. ساختار و نحوه عملکرد این دو دستور را در این آموزش و آموزش حلقه FOR بصورت کامل بررسی کردیم. اکنون می خواهیم این دو دستور را باهم مقایسه کنیم. اولین تفاوت این دو دستور نوع داده ورودی آنهاست. در حلقه FOR شما هرگونه متغیری را می توانید استفاده کنیم اما در آموزش حلقه foreach در php ، داده ورودی آرایه های عددی و  مشارکتی می باشد. پایان کار حلقه در حلقه for، زمانی است که شرط گفته شده صدق نکند و  این شرط است که خاتمه حلقه را تعیین می کند. در حلقه foreach شرط خاتمه پایان پیمایش آرایه است مگر اینکه از دستور break استفاده شود. حلقه for تنها به یک صورت نوشته می شود در صورتی که حلقه foreach برای آرایه های معمولی و آرایه های مشارکتی به دو شکل پیاده سازی میشود.

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.