PHP में array_diff_ukey() फ़ंक्शन सरणियों की कुंजियों (keys) की तुलना कस्टम कॉलबैक फ़ंक्शन से करता है और अंतर (difference) लौटाता है। पहली सरणी की वे प्रविष्टियाँ लौटाई जाती हैं जिनकी कुंजियाँ अन्य किसी सरणी में नहीं हैं (कॉलबैक अनुसार)। मानों की तुलना नहीं की जाती।
सिंटैक्स (Syntax)
array_diff_ukey(array $arr1, array $arr2, array ...$arrays, callable $key_compare_func): array
पैरामीटर्स (Parameters)
$arr1 − आधार सरणी (तुलना इससे की जाती है)।
$arr2 − तुलना के लिए दूसरी सरणी।
$arrays (वैकल्पिक) − अतिरिक्त सरणियाँ।
$key_compare_func − कुंजी तुलना कॉलबैक।
0,<0, या>0लौटाए।
रिटर्न वैल्यू (Return Value)
पहली सरणी की वे प्रविष्टियाँ वाली सरणी लौटाता है जिनकी कुंजियाँ अन्य सरणियों में नहीं हैं।
उदाहरण (Examples)
उदाहरण 1: कस्टम कुंजी तुलना
<?php
function compare_key($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_diff_ukey($arr1, $arr2, "compare_key");
print_r($result);
?>
आउटपुट
Array
(
[b] => keyboard
[c] => mouse
)
कुंजी "a" दोनों में है। कुंजी "b", "c" केवल arr1 में।
उदाहरण 2: केस-इनसेंसिटिव कुंजी तुलना
<?php $arr1 = ["A" => 1, "B" => 2, "C" => 3]; $arr2 = ["a" => 10, "d" => 40]; $result = array_diff_ukey($arr1, $arr2, "strcasecmp"); print_r($result); // "A" ≈ "a" इसलिए बाहर, "B", "C" केवल arr1 में ?>
आउटपुट
Array
(
[B] => 2
[C] => 3
)
डिफ़रेंस फ़ंक्शन्स तुलना (पुनरावलोकन)
| फ़ंक्शन | कुंजी तुलना | मान तुलना | कॉलबैक |
|---|---|---|---|
| array_diff() | नहीं | === | नहीं |
| array_diff_assoc() | === | === | नहीं |
| array_diff_key() | === | नहीं | नहीं |
| array_diff_ukey() | कॉलबैक | नहीं | 1 (कुंजी) |
| array_diff_uassoc() | कॉलबैक | === | 1 (कुंजी) |
| array_udiff() | नहीं | कॉलबैक | 1 (मान) |
| array_udiff_assoc() | === | कॉलबैक | 1 (मान) |
| array_udiff_uassoc() | कॉलबैक | कॉलबैक | 2 (कुंजी, मान) |