برای آموزش foreach ابتدا باید درباره آرایه ها تا حدودی شناخت داشته باشیم.
Table of contents [Show]
پیشنهاد ویژه ما: آموزش php
آرایه مجموعه ای از متغیرهاست که کنار هم قرار میگیرند و به وسیله اندیس به آن دسترسی داریم. مانند نمونه زیر :
<?php
$cars = array(“Volvo”, “BMW”, “Toyota”);
echo “I like ” . $cars[0] . “, ” . $cars[1] . ” and ” . $cars[2] . “.”;
?>
برای اینکه تعداد عناصر آرایه را برگردانیم از تابع count() استفاده می کنیم :
<?php
$cars = array(“Volvo”, “BMW”, “Toyota”);
echo count($cars);
?>
در این آرایه هر عنصر از آرایه یک اندیس دارد که به وسیله آن اندیس می توان به آن دسترسی پیدا کرد.
<?php
$cars = array(“Volvo”, “BMW”, “Toyota”);
$arrlength = count($cars);
for($x = 0; $x < $arrlength; $x++) {
echo $cars[$x];
echo “<br>”;
}
?>
در آرایه های انجمنی به جای اندیس یک محتوای با معنی داریم:
<?php
$age = array(“Peter”=>”35”, “Ben”=>”37”, “Joe”=>”43”);
echo “Peter is ” . $age[‘Peter’] . ” years old.”;
?>
می توانیم به صورت زیر نیز آرایه رو بنویسیم. همانطور که میبینید به جای اندیس از اسامی که معنادار است استفاده شده و به جای اندیسها از اسامی افراد استفاده شده است:
$age[‘Peter’] = “35”;
$age[‘Ben’] = “37”;
$age[‘Joe’] = “43”;
زمانی که از آرایههای انجمنی استفاده کنیم می توانیم به جای آرایه انجمنی از foreach استفاده کنیم. حالا باید ببینیم foreach چیکار میکنه.
Syntax
foreach ($array as $value) {
code to be executed;
}
foreach دو مقدار می گیرد اولی آرایه است فرقی هم ندارد چه آرایه ای باشد می تواند اندیسی یا انجمنی باشد. دومین مقدار یک متغیر است که مقدار آرایه در آن ریخته میشود. در مثال زیر اسم آرایه color است و متغیر دلخواه همان $value است. مثال زیر یک آرایه اندیسی است :
<?php
$colors = array(“red”, “green”, “blue”, “yellow”);
foreach ($colors as $value) {
echo “$value <br>”;
}
?>
برای آرایه انجمنی می توان مثال زیر را آورد. در این مثال بخش دوم یعنی متغیر تعریف شده با توجه به آرایه انجمنی تعریف میشود.
<?php
$age = array(“Peter”=>”35”, “Ben”=>”37”, “Joe”=>”43”);
foreach($age as $x => $val) {
echo “$x = $val<br>”;
}
?>
وقتی بخواهیم از یک جایی به بعد دیگر حلقه ادامه پیدا نکنه از دستور breakاستفاده می کنیم مثلا در حلقه فرار است از 1 تا 10 چاپ شود ولی ما بخواهیم وقتی به عدد 4 رسید حلقه متوقف شود از break استفاده می کنیم.
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
break;
}
echo “The number is: $x <br>”;
}
?>
حال اگر بخواهیم فقط 4 را چاپ نکنه و دوباره گامهای بعدی رو چاپ کنه از continue استفاده می کنیم.
<?php
for ($x = 0; $x < 10; $x++) {
if ($x == 4) {
continue;
}
echo “The number is: $x <br>”;
}
?>
آرایه های چندگانه یا دو بعدی آرایه هایی هستند که عناصرشان خود می توانند آرایه باشند به این صورت:
$cars = array (
array(“Volvo”,22,18),
array(“BMW”,15,13),
array(“Saab”,5,2),
array(“Land Rover”,17,15)
);
برای دسترسی به عناصر این آرایه ها از حلقه for استفاده میشود :
<?php
for ($row = 0; $row < 4; $row++) {
echo “<p><b>Row number $row</b></p>”;
echo “<ul>”;
for ($col = 0; $col < 3; $col++) {
echo “<li>”.$cars[$row][$col].”</li>”;
}
echo “</ul>”;
}
?>
برای مرتب سازی آرایه ها از توابع زیر استفاده میشود:
()sort – آرایه ها را به ترتیب صعودی مرتب می کند
()rsort – آرایه ها را به ترتیب نزولی مرتب می کند
()asort – آرایه های انجمنی را بر اساس مقدار به ترتیب صعودی مرتب می کند
()ksort – آرایه های انجمنی را طبق اندیس به ترتیب صعودی مرتب می کند
()arsort – آرایه های انجمنی را بر اساس مقدار به ترتیب نزولی مرتب می کند
()krsort – آرایه های انجمنی را بر اساس اندیس به ترتیب نزولی مرتب می کند