PHP में array_intersect() फ़ंक्शन सरणियों के मानों (values) की आंतरिक तुलना (===) करके मिलान वाले मान लौटाता है। कुंजियों की तुलना नहीं की जाती (लेकिन पहली सरणी की कुंजियाँ संरक्षित रहती हैं)।
सिंटैक्स (Syntax)
array_intersect(array $arr1, array $arr2, array ...$arrays): array
पैरामीटर्स (Parameters)
$arr1 − आधार सरणी।
$arr2 − तुलना के लिए दूसरी सरणी।
$arrays (वैकल्पिक) − अतिरिक्त सरणियाँ।
रिटर्न वैल्यू (Return Value)
पहली सरणी के वे मान वाली सरणी लौटाता है जो सभी अन्य सरणियों में मौजूद हों। कुंजियाँ पहली सरणी से संरक्षित रहती हैं।
उदाहरण (Examples)
उदाहरण 1: सहयोगी सरणियों का इंटरसेक्शन
<?php
$a1 = array("p" => "Windows", "q" => "Mac", "r" => "Linux");
$a2 = array("s" => "Windows", "t" => "Linux");
$result = array_intersect($a1, $a2);
print_r($result);
?>
आउटपुट
Array
(
[p] => Windows
[r] => Linux
)
कुंजियाँ "p", "r" पहली सरणी से संरक्षित। मान "Windows", "Linux" दोनों सरणियों में मौजूद।
उदाहरण 2: संख्यात्मक सरणी
<?php $arr1 = array(15, 30, 40, 60, 78, 100, 130, 145, 150); $arr2 = array(50, 60, 70, 80, 90, 100); $res = array_intersect($arr1, $arr2); print_r($res); ?>
आउटपुट
Array
(
[3] => 60
[5] => 100
)
कुंजियाँ 3, 5 पहली सरणी से (0-आधारित सूचकांक)।
उदाहरण 3: डुप्लिकेट मान
<?php $arr1 = [1, 2, 2, 3]; $arr2 = [2, 2, 4]; print_r(array_intersect($arr1, $arr2)); // आउटपुट: [1 => 2, 2 => 2] - दोनों 2 शामिल ?>
उदाहरण 4: प्रकार-संवेदनशील तुलना (===)
<?php $arr1 = [1, "1", true]; $arr2 = [1, "1"]; print_r(array_intersect($arr1, $arr2)); // 1 (int) और "1" (string) अलग माने जाते हैं ?>
प्रदर्शन नोट
बड़ी सरणियों के लिए array_intersect() O(n*m) हो सकता है। यदि कुंजियाँ अद्वितीय हैं तो array_intersect_key() या कुंजियों को फ्लिप करके array_intersect_key() तेज़ हो सकता है।