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