حلقه foreach در PHP

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

 

Form 1- Syntax

foreach (array_expression as $value)
   {
   statement
   }

در این فرم، حلقه به ازای هر ایتم در آرایه اجرا میشه و در هر تکرار مقدار المنت جاری در متغیر value$ قرار میگیره.

 

Form 2- Syntax

foreach (array_expression as $key => $value)
   {
   statement
   }

این فرم ویژگی فرم بالا رو داره به علاوه، کلید هر آیتم آرایه ( در آرایه های اندیسی(Indexed array) عدد و در آرایه های متحد(Associative array) نام ایتم مشخص شده) رو هم در Key قرار میده.

مهم: متغیرهایی که درحقله تعریف میکنیم مثل value$ و key$ درخارج از scope (محدوده بلاک) هم قابل دسترس هستند و پس از اتمام کار از بین نمیرن. پس بهتره برای صرفه جویی در حافظه، متغیرها رو با دستور ()unset حذف کنیم.

مثال

<?php
$arr = array (1, 2, 3, 4 );
foreach ( $arr as &$value ) {
	$value = $value * 2;
}
unset ( $value );
echo $value;
?>

خروجی:

Notice: Undefined variable: value in C:\local\htdocs\foreach.php on line 7

 

مثال اول – مثالی از فرم اول با آرایه اندیسی

<?php
//An indexed array
$arr = array ('25', '19', '32', '20' );
foreach ( $arr as $value ) {
	echo $value = $value * 2 . ' ';
}
unset ( $value );
?>

خروجی:

۵۰ ۳۸ ۶۴ ۴۰

 مثال دوم – مثالی دیگراز فرم اول با آرایه متحد

<?php
//An associative array
$persons = array (
 "reza" => "25",
 "mahdi" => "19",
 "ali" => "32",
 "farzad" => "20"
);
foreach ( $persons as $value ) {
	echo $value . ' ';
}
unset ( $value );
?>

خروجی:

۲۵ ۱۹ ۳۲ ۲۰

مثال سوم – مثالی از فرم دوم با آرایه متحد

فرض کنید در کد بالا ما میخوایم علاوه بر سن افراد، نامشون روهم نشون بدیم این کار فقط با استفاده از فرم دوم حلقه foreach یعنی اضافه کردن key امکان پذیره.

<?php
//An associative array
$persons = array (
 "reza" => "25",
 "mahdi" => "19",
 "ali" => "32",
 "farzad" => "20"
);
foreach ( $persons as $key => $value ) {
	echo $key . ' => ' . $value . '<br/>';
}
unset ( $value );
?>

خروجی:

reza => 25
mahdi => 19
ali => 32
farzad => 20

 

سوالی دارید؟

بدون گرفتن نتیجه اینجا رو ترک نکنید! هر سوالی دارید میتونید در عرض ۱۵ ثانیه ثبت نام و خیلی زود جواب بگیرید.

7 دیدگاه برای «حلقه foreach در PHP»

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به سوال زیر پاسخ بدهید *