array_merge in PHP – Set Functions

PHP हमें कुछ ऐसे Functions भी Provide करता है, जिनका प्रयोग करके हम किसी Array पर Set Theory के Union, IntersectionDifference Operations को Implement कर सकते हैं। Set Theory के हर Set को एक Array द्वारा Represent किया जाता है और विभिन्न Set Operations को PHP के Set Functions द्वारा Perform किया जाता है।

array_merge() Function

ये Function Arguments के रूप में दो या दो से ज्यादा Arrays को Accept करता है और Arguments के रूप में Pass किए गए Arrays को आपस में Merge करके एक नया Array Return करता है। इस Function का प्रयोग करने पर पहले Argument के रूप में Specify किए गए Array के अन्त में दूसरे Array के Elements Append हो जाते हैं।

यदि Input Array व Append किए जाने वाले दूसरे Array दोनों में समान String Key हो, तो दूसरे Array की Value पहले Array की Value को Overwrite कर देती है। जबकि यदि Keys Numeric हों, तो Values Overwrite नहीं होती, बल्कि पहले Array के अन्त में Append होती हैं।

जब Merging Operation Perform होता है, तब पहले Array के Elements के Index Numbers की Numbering फिर से शुरू से होती है। इस Function को हम निम्नानुसार उपयोग में ले सकते हैं:

<?php
	$name = array(
				'Jaipur'=>'Rajesh', 
				'Bali'=>'Mahesh', 
				'Rani'=>'Suresh', 
				'Pali'=>'Ganesh'
			);
	
	$newName = array('New York', 'Canada');
	
	print_r(array_merge($name, $newName));
?>

//Output
Array
(
    [Jaipur] => Rajesh
    [Bali] => Mahesh
    [Rani] => Suresh
    [Pali] => Ganesh
    [0] => New York
    [1] => Canada
)

हम इस Function में दो से ज्यादा Arrays भी Arguments के रूप में Pass कर सकते हैं। हम जितने Arrays Pass करते हैं, सभी पहले Argument में Specify किए गए Array के अन्त में ही जुडते हुए Result Return करते हैं, लेकिन पहले Argument के रूप में Specified Actual Array में किसी तरह का कोई परिवर्तन नहीं होता।

<?php
	$name = array(2=>'Rajesh', 'Mahesh', 'Suresh', 'Ganesh');
	
	$newName = array('New York', 'Canada');
	
	print_r($name);
	print_r(array_merge($name, $newName));
?>

//Output
Array
(
    [2] => Rajesh
    [3] => Mahesh
    [4] => Suresh
    [5] => Ganesh
)
Array
(
    [0] => Rajesh
    [1] => Mahesh
    [2] => Suresh
    [3] => Ganesh
    [4] => New York
    [5] => Canada
)

जैसाकि हमने पहले कहा कि जब हम array_merge() Function का प्रयोग करते हैं, तब पहले Argument में Specified Array के Index Numbers की Re-Numbering होती है।

परिणामस्वरूप हमारे इस उदाहरण में $name नाम के Array के Elements Index Number 1 से Store हो रहे हैं। लेकिन Merging के बाद Re-Numbering होने के कारण $name नाम के Array के Elements फिर से Index Number 0 पर Store होते हैं, जैसाकि Output में दिखाई दे रहा है।

यदि हम Array की Renumbering करना नहीं चाहते, तो हम दो Arrays को आपस में Array Union Operator ( + ) का प्रयोग करके भी जोड सकते हैं। जैसेः

<?php
	$name = array(2=>'Rajesh', 'Mahesh', 'Suresh', 'Ganesh');
	
	$newName = array('New York', 'Canada');
	
	print_r($name + $newName);
?>

//Output
Array
(
    [2] => Rajesh
    [3] => Mahesh
    [4] => Suresh
    [5] => Ganesh
    [0] => New York
    [1] => Canada
)

इस उदाहरण के Output में हम देख सकते हैं कि इस बार Array की Renumbering नहीं हो रही है और हो Element जिस Index Number पर है, वह Element उसी Index Number पर रहता है।

जब हम दो Array को + Operator द्वारा Merge करते हैं, तब यदि दूसरे Array में उसी Index Number पर कोई Element हो, जिस पर पहले Array में है, तो दूसरे Array के उस Index Number पर स्थित Element Merged Array में Return हीं होता। जैसेः

<?php
	$name = array(2=>'Rajesh', 'Mahesh', 'Suresh', 'Ganesh');
	
	$newName = array('New York', 'Canada', 'Washington');
	
	print_r($name + $newName);
?>

//Output
Array
(
    [2] => Rajesh
    [3] => Mahesh
    [4] => Suresh
    [5] => Ganesh
    [0] => New York
    [1] => Canada
)

उपरोक्त उदाहरण में $newName Array में Index Number 2 पर ‘Washington’ String Store है, लेकिन जैसाकि Output में हम देख सकते हैं कि Merging के दौरान Return होने वाले Output Array में ये String नहीं है, क्योंकि $name नाम के Array में Index Number 2 पर पहले से एक String उपलब्ध है, इसलिए ये String Final Merged Array में Return नहीं हो रहा है।

यानी आपस में Merge होने वाले दो Arrays में पहले से पहले Array की ज्ञमले सुरक्षित रहती हैं और यदि दूसरे Array में भी उसी Position पर कोई मान हो, जिस पर पहले Array में कोई मान है, तो पहले Array का मान ही सुरक्षित रहता है। दूसरे Array के मान को PHP द्वारा Ignore कर दिया जाता है।

array_intersect() Function

इस Function का प्रयोग करके हम Set Theory के Intersection जैसा Result Return करवा सकते हैं, जिसमें पहले Array के सभी Elements के मानों को Argument के रूप में इस Function में Pass किये गए सभी अन्य Arrays के मानों से Compare किया जाता है और पहले Array के जो मान अन्य Arrays में उपलब्ध होते हैं, उन मानों का एक नया Array Return होता है। जबकि जो मान पहले Array में तो उपलब्ध होता है, लेकिन Function में Specify किए गए अन्य Arrays में उपलब्ध नहीं होता, वे मान Return नहीं होते।

ये Function भी पहले Array के Index Numbers को Preserve रखता है। यानी समान Position पर यदि अन्य Arrays में भी कोई Value हो, तो भी पहले Array की Value ही Return होती है।

<?php
	$name = array(2=>'Rajesh', 'Mahesh', 'Suresh', 'Ganesh');
	
	$newName = array('Rajesh', 'Canada', 'Ganesh');
	
	print_r(array_intersect($name, $newName));
?>

//Output
Array
(
    [2] => Rajesh
    [5] => Ganesh
)

उपरोक्त उदाहरण में $names नाम के Array में ऐसे दो नाम हैं, जो $newNames नाम के Array में भी हैं। इसलिये array_intersect() Function केवल उन्हीं दोनों Matching नामों का Array Return करता है। द्रोष नामों को दोनों ही Arrays से छोड देता है। परिणामस्वरूप Output में केवल दो ही नामों का एक Array Return होता है।

साथ ही Return होने वाले Array के Elements के Index Numbers पहले Array के अनुसार ही होते हैं क्योंकि पहले Array के Index Number ही Preserved रहते हैं।

array_diff() Function

इस Function का प्रयोग करके हम Set Theory के अनुसार एक Set में से दूसरे Set को घटाने जैसा Result प्राप्त कर सकते हैं। इस Function को Use करने पर पहले Array में से केवल वे Elements Array के रूप में Return होते हैं, जो Elements इस Function में Specify किये गए किसी भी अन्य Array में उपलब्ध नहीं होते।

<?php
	$name = array(2=>'Rajesh', 'Mahesh', 'Suresh', 'Ganesh');
	
	$newName = array('Rajesh', 'Canada', 'Ganesh');
	
	print_r(array_diff($name, $newName));
?>

//Output
Array
(
    [3] => Mahesh
    [4] => Suresh
)

जैसाकि हम Output में देख सकते हैं कि पहले Array के केवल वे ही Elements Array के Result के रूप में Return हो रहे हैं, जो दूसरे Array में भी उपलब्ध नहीं हैं। जो Elements दूसरे Array में उपलब्ध हैं, वे Elements Final Resultant Array में से Minus हो जाते हैं, जो कि Set Theory के Minus करने का तरीका है।

इस Function को Use करने पर दो Elements केवल उसी स्थिति में समान माने जाते हैं, जब वे दोनों Elements String Type Casting के बाद Strictly एक समान होते हैं।

array_combine() Function

ये Function दो Arguments Accept करता है। पहला Argument Keys का एक Array होता है, जबकि दूसरा Argument Values का एक Array होता है। ये Function KeysValues के Arrays को आपस में Combine करता है और एक नया Associated Array Return करता है।

यदि Keys के रूप में हम किसी Illegal Value को Specify करते हैं, तो PHP उस Illegal Key Value को एक String में Convert करके उपयोग में लेता है।

यदि Keys व Values दोनों की संख्‍या एक समान न हो, तो ये Function False Return करता है। साथ ही E_WARNING नाम का एक Warning Message भी Return करता है।

<?php
	$a = array('green', 'red', 'yellow');
	$b = array('avocado', 'apple', 'banana');
	$c = array_combine($a, $b);
	
	print_r($c);
?>

//Output
Array
(
    [green] => avocado
    [red] => apple
    [yellow] => banana
)
array_push in PHP - PHP array_shift - Stack and Queue
PHP Sort Array by Key | PHP Sort Array by Value

PHP in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

PHP in Hindi | Page: 647 | Format: PDF

BUY NOW GET DEMO REVIEWS