PHP में array_walk() फ़ंक्शन सरणी के प्रत्येक तत्व पर उपयोगकर्ता-परिभाषित फ़ंक्शन (callback) लागू करता है। यह सरणी को संशोधित कर सकता है (यदि कॉलबैक रेफरेंस द्वारा मान लेता है)।
सिंटैक्स (Syntax)
array_walk(array &$arr, callable $callback, mixed $arg = null): bool
पैरामीटर्स (Parameters)
$arr − इनपुट सरणी (रेफरेंस द्वारा पास की जाती है, संशोधन योग्य)।
$callback − कॉलबैक फ़ंक्शन जो स्वीकार करता है:
$value- तत्व का मान$key- तत्व की कुंजी$arg- वैकल्पिक तीसरा तर्क (उपयोगकर्ता डेटा)
$arg (वैकल्पिक) − कॉलबैक को पास किया जाने वाला अतिरिक्त डेटा।
रिटर्न वैल्यू (Return Value)
सफलता पर true, विफलता पर false लौटाता है।
महत्वपूर्ण: सरणी संशोधित करने के लिए रेफरेंस उपयोग करें
<?php
$arr = [1, 2, 3];
// मान द्वारा - मूल सरणी नहीं बदलेगी
array_walk($arr, function($v) { $v *= 2; });
print_r($arr); // [1, 2, 3]
// रेफरेंस द्वारा - मूल सरणी बदलेगी
array_walk($arr, function(&$v) { $v *= 2; });
print_r($arr); // [2, 4, 6]
?>
उदाहरण (Examples)
उदाहरण 1: प्रत्येक तत्व प्रदर्शित करना (कुंजी और मान)
<?php
function display($value, $key) {
echo "$key id : Student $value
";
}
$arr = array("p" => "Tom", "q" => "Jack", "r" => "Amit");
array_walk($arr, "display");
?>
आउटपुट
p id : Student Tom q id : Student Jack r id : Student Amit
उदाहरण 2: तीसरे तर्क (userdata) का उपयोग
<?php
function prefix($value, $key, $prefix) {
echo "$prefix$key: $value
";
}
$arr = ["a" => 1, "b" => 2];
array_walk($arr, "prefix", "Item-");
?>
आउटपुट
Item-a: 1 Item-b: 2
उदाहरण 3: सरणी संशोधित करना (रेफरेंस के साथ)
<?php
$numbers = [1, 2, 3, 4, 5];
array_walk($numbers, function(&$value, $key) {
$value = $value * 2 + $key;
});
print_r($numbers);
?>
आउटपुट
Array
(
[0] => 2
[1] => 5
[2] => 8
[3] => 11
[4] => 14
)
array_walk() vs array_map()
| विशेषता | array_walk() | array_map() |
|---|---|---|
| रिटर्न | bool | नई सरणी |
| मूल सरणी बदलता है | हाँ (रेफरेंस से) | नहीं (नई सरणी बनाता है) |
| कुंजी पास करता है | हाँ | नहीं (केवल मान, PHP 7.1+ में array_map में कुंजी नहीं) |
| एकाधिक सरणियाँ | नहीं | हाँ |