परिचय
foreach स्टेटमेंट PHP द्वारा प्रस्तावित लूपिंग कंस्ट्रक्ट्स में से एक है। अन्य लूपिंग स्टेटमेंट्स - while, do while और for - सशर्त या गिनती लूप बनाने के लिए उपयोग किए जाते हैं। दूसरी ओर, foreach लूप सरणी संरचना पर पुनरावृत्ति के लिए बहुत सुविधाजनक है। foreach स्टेटमेंट का उपयोग इस प्रकार है:
सिंटैक्स
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
foreach का पहला रूप अनुक्रमित सरणी में तत्वों पर पुनरावृत्ति करता है। प्रत्येक पुनरावृत्ति पर, $value वेरिएबल को सरणी में वर्तमान तत्व पर सेट किया जाता है। PHP आंतरिक पॉइंटर को अगले तत्व पर आगे बढ़ाकर ट्रैक करता है, जब तक कि यह सरणी के अंत तक नहीं पहुंच जाता। प्रत्येक तत्व का मान foreach स्टेटमेंट के बाद आने वाले लूप के बॉडी द्वारा संसाधित किया जाता है।
दूसरा रूप सहयोगी सरणी के पारगमन के लिए उपयुक्त है। प्रत्येक पुनरावृत्ति वर्तमान तत्व को $key और $value वेरिएबल्स में अनपैक करती है। लूप के बॉडी को संसाधित करने के बाद, सरणी पॉइंटर को अगली कुंजी-मान जोड़ी पर आगे बढ़ाया जाता है जब तक कि सरणी समाप्त नहीं हो जाती।
उदाहरण
उदाहरण 1: foreach लूप के साथ अनुक्रमित सरणी पार करना
<?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
उदाहरण 2: foreach लूप के साथ सहयोगी सरणी पार करना
<?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
उदाहरण 3: नेस्टेड 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
उदाहरण 4: सहयोगी सरणियों की दो-आयामी सरणी पार करना
<?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