PHP में array_uintersect() फ़ंक्शन एक कस्टम कॉलबैक फ़ंक्शन का उपयोग करके सरणियों के मानों (values) की तुलना करता है और मिलान वाले मान लौटाता है। कुंजियों की तुलना नहीं की जाती (केवल मान)। पहली सरणी के वे मान लौटाए जाते हैं जो सभी अन्य सरणियों में मौजूद हों।
सिंटैक्स (Syntax)
array_uintersect(array $arr1, array $arr2, array ...$arrays, callable $value_compare_func): array
पैरामीटर्स (Parameters)
$arr1 − आधार सरणी।
$arr2 − तुलना के लिए दूसरी सरणी।
$arrays (वैकल्पिक) − अतिरिक्त सरणियाँ।
$value_compare_func − मान तुलना कॉलबैक।
0,<0, या>0लौटाए।
रिटर्न वैल्यू (Return Value)
पहली सरणी के वे मान वाली सरणी लौटाता है जो सभी सरणियों में मौजूद हों (कुंजियाँ पहली सरणी से संरक्षित)।
उदाहरण (Examples)
उदाहरण 1: कस्टम तुलना फ़ंक्शन के साथ
<?php
function compare($a, $b) {
if ($a === $b) return 0;
return ($a > $b) ? 1 : -1;
}
$arr1 = array("p" => "one", "q" => "two", "r" => "three");
$arr2 = array("p" => "three", "q" => "four", "s" => "three");
$result = array_uintersect($arr1, $arr2, "compare");
print_r($result);
?>
आउटपुट
Array
(
[r] => three
)
उदाहरण 2: केस-इनसेंसिटिव तुलना
<?php $arr1 = ["A" => "Apple", "B" => "Banana", "C" => "Cherry"]; $arr2 = ["X" => "apple", "Y" => "BANANA", "Z" => "Durian"]; $result = array_uintersect($arr1, $arr2, "strcasecmp"); print_r($result); ?>
आउटपुट
Array
(
[A] => Apple
[B] => Banana
)
उदाहरण 3: ऑब्जेक्ट्स की तुलना
<?php
class Product {
public $id, $name;
public function __construct($id, $name) {
$this->id = $id;
$this->name = $name;
}
}
$p1 = new Product(1, "Laptop");
$p2 = new Product(2, "Mouse");
$p3 = new Product(1, "Laptop"); // समान ID
$arr1 = [$p1, $p2];
$arr2 = [$p3];
$result = array_uintersect($arr1, $arr2, function($a, $b) {
return $a->id <=> $b->id;
});
print_r($result);
?>
आउटपुट
Array
(
[0] => Product Object
(
[id] => 1
[name] => Laptop
)
)
नोट
array_uintersect() केवल मानों की तुलना करता है, कुंजियों की नहीं। यदि कुंजी भी मिलनी चाहिए तो array_uintersect_assoc() या array_uintersect_uassoc() उपयोग करें।