PHP foreach Loop
In this page:
foreach ($array as $value) {
// use $value
}
foreach ($array as $key => $value) {
// use $key and $value
}
एक foreach Loop क्या है?
foreach loop किसी array के हर element में manually एक index track किए बिना चलने के लिए PHP का dedicated tool है।
जहाँ एक for loop आपसे खुद एक counter और bounds manage करने की माँग करता है, foreach आपको हर value सीधे देता है, यही वजह है कि जब goal सिर्फ "हर item के लिए यह करो" हो तो यह वह loop है जिस तक PHP developers सबसे पहले पहुँचते हैं।
उदाहरण: What is a foreach Loop?
<?php
// Declare `$fruits` as an array: `["apple", "banana", "cherry"]`
$fruits = ["apple", "banana", "cherry"];
// Loop over `$fruits`, binding each item to `$fruit`
foreach ($fruits as $fruit) {
// Print `$fruit . "\n"` to the output
echo $fruit . "\n";
}
?>
Login to try C/C++/Java/PHP code in the editor
Keys और Values के साथ Loop चलाना
foreach ($array as $key => $value) लिखना आपको हर pass पर array key और उसकी value दोनों देता है, जो associative arrays के लिए बहुत मायने रखता है जहाँ key कोई real meaning carry करती है — एक username, एक product ID, एक config option name।
=> $value form के बिना आपको सिर्फ values दिखेंगी और यह context पूरी तरह खो जाएगा।
उदाहरण: Looping With Keys and Values
<?php
// Declare `$config` as an array: `["theme" => "dark", "lang" => "en"]`
$config = ["theme" => "dark", "lang" => "en"];
// Loop over `$config`, binding each item to `$key => $value`
foreach ($config as $key => $value) {
// Print "$key: $value\n" to the output
echo "$key: $value\n";
}
?>
Login to try C/C++/Java/PHP code in the editor
Reference से Values Modify करना
एक ampersand add करना, foreach ($array as &$value), $value को original array में एक copy के बजाय एक reference बना देता है, इसलिए loop body के अंदर आप जो changes करते हैं वे असल में array को खुद update कर देते हैं।
यह एक foreach pass के दौरान array elements को in place modify करने का इकलौता built-in तरीका है।
उदाहरण: Modifying Values by Reference
<?php
// Declare `$numbers` as an array: `[1, 2, 3]`
$numbers = [1, 2, 3];
// Loop over `$numbers`, binding each item to `&$value`
foreach ($numbers as &$value) {
$value *= 2;
}
// Remove `$value`
unset($value);
// Print a human-readable dump of `$numbers`
print_r($numbers);
?>
Login to try C/C++/Java/PHP code in the editor
Dangling Reference Pitfall
एक by-reference foreach खत्म होने के बाद, $value अभी भी array के last element को point करता है — बाद में एक different, non-reference foreach में उसी variable name को reuse करना चुपचाप उस last element को unrelated data से overwrite कर सकता है।
Fix reference loop खत्म होते ही एक single unset($value); है, और इसे skip करना PHP के सबसे common array bugs में से एक है।
उदाहरण: The Dangling Reference Pitfall
<?php
$numbers = [1, 2, 3];
foreach ($numbers as &$value) {
$value *= 2;
}
unset($value); // without this, the next foreach below would corrupt the last element
foreach ($numbers as $value) {
echo $value . "\n";
}
?>
Login to try C/C++/Java/PHP code in the editor
Nested और Multidimensional Arrays के साथ foreach
एक foreach को दूसरे के अंदर nest करना किसी multidimensional array में चलने का natural तरीका है, जैसे data की rows represent करने वाली associative arrays की एक list — outer loop आपको हर row देता है, और एक inner loop या direct key access उस row के individual fields पढ़ता है।
उदाहरण: foreach With Nested and Multidimensional Arrays
<?php
$rows = [
["name" => "Alice", "age" => 30],
["name" => "Bob", "age" => 25],
];
// Loop over `$rows`, binding each item to `$row`
foreach ($rows as $row) {
// Print `$row["name"] . " is " . $row["age"] . "\n"` to the output
echo $row["name"] . " is " . $row["age"] . "\n";
}
?>
Login to try C/C++/Java/PHP code in the editor
foreachके अंदर$valueको modify करना और array के बदलने की उम्मीद करना, जबकि default रूप से यह एक copy है; in place modify करने के लिए&$valueइस्तेमाल करें।- एक by-reference
foreachvariable को alive छोड़ देना और इसे बाद के एक loop में reuse करना, जो array के last element को overwrite कर देता है। - किसी array पर loop चलाते हुए इसकी keys modify करना या elements add करना, जो unexpected results देता है क्योंकि
foreachdefault रूप से एक copy पर काम करता है।
Chapter Quiz — Complete all 14 topics to unlock
0/14 topics done
Complete these topics first: