PHP में array_udiff_assoc() फ़ंक्शन सरणियों की कुंजियों की आंतरिक तुलना (===) और मानों की कस्टम कॉलबैक तुलना करता है, और अंतर (difference) लौटाता है। पहली सरणी की वे प्रविष्टियाँ लौटाई जाती हैं जो अन्य सरणियों में कुंजी और मान दोनों से मौजूद नहीं हैं।
सिंटैक्स (Syntax)
array_udiff_assoc(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("a" => "laptop", "b" => "keyboard", "c" => "mouse");
$arr2 = array("a" => "laptop", "d" => "mouse");
$result = array_udiff_assoc($arr1, $arr2, "compare");
print_r($result);
?>
आउटपुट
Array
(
[b] => keyboard
[c] => mouse
)
व्याख्या: कुंजी "a" दोनों में है और मान समान ("laptop")। कुंजी "b" केवल arr1 में है। कुंजी "c" arr1 में है लेकिन arr2 में "d" कुंजी के साथ "mouse" है - कुंजी अलग इसलिए अंतर माना गया।
उदाहरण 2: केस-इनसेंसिटिव मान तुलना
<?php $arr1 = ["A" => "Apple", "B" => "Banana"]; $arr2 = ["A" => "apple", "C" => "Cherry"]; $result = array_udiff_assoc($arr1, $arr2, "strcasecmp"); print_r($result); ?>
आउटपुट
Array
(
[B] => Banana
)
कुंजी "A" दोनों में है और केस-इनसेंसिटिव तुलना में मान समान हैं। कुंजी "B" केवल arr1 में।
डिफ़रेंस फ़ंक्शन्स तुलना
| फ़ंक्शन | कुंजी तुलना | मान तुलना | कॉलबैक |
|---|---|---|---|
| array_diff() | नहीं | आंतरिक (===) | नहीं |
| array_diff_assoc() | आंतरिक (===) | आंतरिक (===) | नहीं |
| array_diff_key() | आंतरिक (===) | नहीं | नहीं |
| array_udiff() | नहीं | कॉलबैक | 1 (मान) |
| array_udiff_assoc() | आंतरिक (===) | कॉलबैक | 1 (मान) |
| array_diff_ukey() | कॉलबैक | नहीं | 1 (कुंजी) |
| array_diff_uassoc() | कॉलबैक | आंतरिक (===) | 1 (कुंजी) |
| array_udiff_uassoc() | कॉलबैक | कॉलबैक | 2 (कुंजी, मान) |