PHP में array_reduce() फ़ंक्शन सरणी को एकल मान (single value) में कम (reduce) करता है, उपयोगकर्ता-परिभाषित कॉलबैक फ़ंक्शन का उपयोग करके। इसे "फोल्ड" या "एक्यूमुलेट" भी कहते हैं।
सिंटैक्स (Syntax)
array_reduce(array $arr, callable $callback, mixed $initial = null): mixed
पैरामीटर्स (Parameters)
$arr − इनपुट सरणी।
$callback − कॉलबैक फ़ंक्शन जो स्वीकार करता है:
$carry- संचित मान (पिछली पुनरावृत्ति का परिणाम या $initial)$item- वर्तमान सरणी तत्व
$carryलौटाना चाहिए।$initial (वैकल्पिक) − प्रारंभिक मान। यदि नहीं दिया और सरणी खाली है तो
nullलौटाता है।
रिटर्न वैल्यू (Return Value)
अंतिम संचित मान लौटाता है। खाली सरणी और बिना $initial पर null।
उदाहरण (Examples)
उदाहरण 1: स्ट्रिंग जोड़ना (प्रारंभिक मान के साथ)
<?php
function concat($carry, $item) {
return $carry . " DEMO " . $item;
}
$a = array("One", "Two");
$result = array_reduce($a, "concat", "START");
echo $result; // START DEMO One DEMO Two
?>
आउटपुट
START DEMO One DEMO Two
उदाहरण 2: संख्याओं का योग (प्रारंभिक मान के साथ)
<?php
function add($carry, $item) {
return $carry + $item;
}
$arr = array(50, 100, 150, 200, 250);
$result = array_reduce($arr, "add", 500);
echo $result; // 1250
?>
आउटपुट
1250
उदाहरण 3: प्रारंभिक मान के बिना (पहला तत्व प्रारंभिक मान बनता है)
<?php $arr = [1, 2, 3, 4, 5]; $sum = array_reduce($arr, fn($carry, $item) => $carry + $item); echo $sum; // 15 ?>
उदाहरण 4: सरणी को समतल करना (flatten)
<?php $nested = [[1, 2], [3, 4], [5]]; $flat = array_reduce($arr, fn($carry, $item) => array_merge($carry, $item), []); print_r($flat); // [1, 2, 3, 4, 5] ?>
उदाहरण 5: आवृत्ति गिनना (frequency count)
<?php
$words = ["apple", "banana", "apple", "cherry", "banana", "apple"];
$freq = array_reduce($words, function($carry, $word) {
$carry[$word] = ($carry[$word] ?? 0) + 1;
return $carry;
}, []);
print_r($freq);
?>
आउटपुट
Array
(
[apple] => 3
[banana] => 2
[cherry] => 1
)
array_reduce() vs लूप
array_reduce() फंक्शनल प्रोग्रामिंग शैली है। सरल मामलों में foreach लूप अधिक पठनीय और तेज़ हो सकता है। जटिल संचय तर्क के लिए array_reduce() उपयोगी है।