Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP foreach ลูป


แนะนำตัว

พยากรณ์ คำสั่งเป็นหนึ่งในโครงสร้างการวนซ้ำที่นำเสนอโดย PHP คำสั่งวนซ้ำอื่น ๆ − while, do while และ for - ถูกใช้เพื่อสร้างลูปแบบมีเงื่อนไขหรือแบบนับ ในทางกลับกัน foreach loop นั้นสะดวกมากสำหรับการวนซ้ำโครงสร้างอาร์เรย์ การใช้คำสั่ง foreach มีดังนี้ -

ไวยากรณ์

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

รูปแบบแรกของ foreach วนซ้ำองค์ประกอบในอาร์เรย์ที่จัดทำดัชนี ในการวนซ้ำแต่ละครั้ง ตัวแปร $value จะถูกตั้งค่าเป็นองค์ประกอบปัจจุบันในอาร์เรย์ PHP ติดตามตัวชี้ภายในโดยเลื่อนไปยังองค์ประกอบถัดไป จนถึงจุดสิ้นสุดของอาร์เรย์ ค่าของแต่ละองค์ประกอบจะถูกประมวลผลโดยเนื้อความของลูปที่ตามหลังคำสั่ง foreach

รูปแบบที่สองเหมาะสำหรับการข้ามผ่านอาร์เรย์ที่เชื่อมโยง การวนซ้ำทุกครั้งจะแตกองค์ประกอบปัจจุบันในตัวแปร $key และ $value หลังจากประมวลผลเนื้อหาของลูปแล้ว ตัวชี้อาร์เรย์จะเลื่อนไปยังคู่คีย์-ค่าถัดไปจนกว่าอาร์เรย์จะหมด

ตัวอย่างต่อไปนี้จะข้ามผ่านอาร์เรย์ที่จัดทำดัชนีโดยใช้ foreach loop

ตัวอย่าง

<?php
$arr = array(2,4,6,8,10);
foreach ($arr as $i){
   echo $i . "*2=" . $i*2 . "\n";
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

2*2=4
4*2=8
6*2=12
8*2=16
10*2=20

ตัวอย่างต่อไปนี้แสดงการข้ามผ่านของ associative array กับ foreach loop

ตัวอย่าง

<?php
$arr = array("Phy"=>50, "Che"=>60, "Maths"=>70, "Bio"=>80);
foreach ($arr as $sub=>$marks){
   echo "marks in $sub: " . $marks . "\n";
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

marks in Phy: 50
marks in Che: 60
marks in Maths: 70
marks in Bio: 80

อาร์เรย์สองมิติถูกสำรวจโดยใช้ลูป foreach ที่ซ้อนกัน

ตัวอย่าง

<?php
$arr1=[1,2,3,4,5];
$arr2=[6,7,8,9,10];
$twodim=[$arr1,$arr2];
foreach ($twodim as $row){
   foreach ($row as $col){
      echo $col . " ";
   }
   echo "\n";
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

1 2 3 4 5
6 7 8 9 10

ตัวอย่าง

อาร์เรย์สองมิติของอาเรย์เชื่อมโยงถูกสำรวจในตัวอย่างต่อไปนี้

ตัวอย่าง

<?php
$arr1=["rno"=>1, "name"=>"Kiran", "marks"=>50];
$arr2=["rno"=>2, "name"=>"anil", "marks"=>60];
$arr3=["rno"=>3, "name"=>"Bina", "marks"=>70];
$twodim=[$arr1,$arr2, $arr3];
foreach ($twodim as $row){
   foreach ($row as $k=>$v){
      echo $k . ":" . $v . " ";
   }
   echo "\n";
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

rno:1 name:Kiran marks:50
rno:2 name:anil marks:60
rno:3 name:Bina marks:70