PHP में array_merge_recursive() फ़ंक्शन एक या अधिक सरणियों को पुनरावर्ती (recursively) मर्ज करता है। यदि समान कुंजी वाली प्रविष्टियाँ मिलती हैं, तो उनके मानों को एक सरणी में जोड़ दिया जाता है (ओवरराइट नहीं करता)।
सिंटैक्स (Syntax)
array_merge_recursive(array ...$arrays): array
पैरामीटर्स (Parameters)
$arrays − मर्ज की जाने वाली सरणियाँ (एक या अधिक)।
रिटर्न वैल्यू (Return Value)
मर्ज की गई सरणी लौटाता है। समान स्ट्रिंग कुंजियों के मान सरणी बन जाते हैं। संख्यात्मक कुंजियाँ रीइंडेक्स होती हैं (जोड़ दी जाती हैं)।
उदाहरण (Examples)
उदाहरण 1: समान कुंजी पर सरणी बनाना
<?php
$arr1 = array("p" => "one", "q" => "two");
$arr2 = array("q" => "three", "r" => "four");
$result = array_merge_recursive($arr1, $arr2);
print_r($result);
?>
आउटपुट
Array
(
[p] => one
[q] => Array
(
[0] => two
[1] => three
)
[r] => four
)
उदाहरण 2: संख्यात्मक कुंजियाँ - रीइंडेक्स होती हैं
<?php $arr1 = [10, 20]; $arr2 = [30, 40]; print_r(array_merge_recursive($arr1, $arr2)); ?>
आउटपुट
Array
(
[0] => 10
[1] => 20
[2] => 30
[3] => 40
)
उदाहरण 3: नेस्टेड सरणियाँ मर्ज करना
<?php $arr1 = ["config" => ["debug" => true, "log" => "error"]]; $arr2 = ["config" => ["debug" => false, "cache" => true]]; $result = array_merge_recursive($arr1, $arr2); print_r($result); ?>
आउटपुट
Array
(
[config] => Array
(
[debug] => Array
(
[0] => 1
[1] =>
)
[log] => error
[cache] => 1
)
)
नोट: बूलियन मान 1/खाली स्ट्रिंग में बदल जाते हैं। कॉन्फ़िग मर्ज के लिए सावधानी बरतें।
array_merge() vs array_merge_recursive()
| विशेषता | array_merge() | array_merge_recursive() |
|---|---|---|
| समान स्ट्रिंग कुंजी | अंतिम मान ओवरराइट करता है | मान सरणी में जुड़ जाते हैं |
| संख्यात्मक कुंजी | रीइंडेक्स (जोड़) | रीइंडेक्स (जोड़) |
| नेस्टेड सरणियाँ | पूरी तरह ओवरराइट | पुनरावर्ती मर्ज |