حلقه foreach همونطور که از اسمش پیداست به ازای هر آیتم در یک آرایه، کدهای داخل بلاک رو اجرا میکنه. یعنی اگر پنج ایتم در یک آرایه داشته باشیم حقله ما 5 بار تکرار میشه. معمولا زمانی که نمیدونیم حلقه ما باید چند بار اجرا بشه یا از تعداد ایتم ها خبر نداریم از 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 قرار میده.
مثال
<?php $arr = array (1, 2, 3, 4 ); foreach ( $arr as &$value ) { $value = $value * 2; } unset ( $value ); echo $value; ?>
خروجی:
مثال اول – مثالی از فرم اول با آرایه اندیسی
<?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 ); ?>
خروجی:
mahdi => 19
ali => 32
farzad => 20
بسیار ممنون خیلی بدردم خورد
خیلی ممنون … سایت w3school هم در مورد این آرایه چیزی نگفته
thanks
یه بار بخون ببین میفهمی چی نوشتی ؟!!!
وای خیلی خوب یاد میدین. من تازه پیداتون کردم. حتما ادامه میدم مرسییییییییی.
mer30 az tozihe khoobet
ممنون! خیلی کاربردی بود برام گیر کرده بودم!