PHP का array_diff_key() फ़ंक्शन **कुंजियों (keys)** के आधार पर दो या अधिक सरणियों की तुलना करता है और पहली सरणी में मौजूद उन कुंजी-मान जोड़ों को लौटाता है जिनकी कुंजियाँ अन्य सरणियों में **नहीं** हैं। मानों की तुलना नहीं की जाती — केवल कुंजियाँ।
सिंटैक्स
array_diff_key(array $array, array ...$arrays): array
दिया गया उदाहरण (नोट: कोड में array_diff_assoc उपयोग हुआ है)
<?php
$my_array1 = array("1"=>"Joe", "45"=>"Goldberg", "37"=>"Charolette", "91"=>"Micheal");
$my_array2 = array("1"=>"Joe", "45"=>"Goldberg", "37"=>"Charolette");
$my_array3 = array("1"=>"Joe", "45"=>"Goldberg");
print_r(array_diff_assoc($my_array1, $my_array2, $my_array3));
?>
आउटपुट
Array ( [91] => Micheal )
नोट: उदाहरण कोड में array_diff_assoc() उपयोग हुआ है (कुंजी **और** मान दोनों की तुलना), लेकिन शीर्षक array_diff_key() का है। array_diff_key() केवल कुंजियाँ जांचता।
array_diff_key() का सही उदाहरण
<?php $arr1 = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]; $arr2 = ['a' => 10, 'b' => 20]; // मान अलग, कुंजियाँ समान $arr3 = ['c' => 30]; // कुंजी 'c' मौजूद $result = array_diff_key($arr1, $arr2, $arr3); print_r($result); // आउटपुट: Array ( [d] => 4 ) — केवल 'd' कुंजी अन्य में नहीं ?>
तुलना: संबंधित फ़ंक्शन्स
| फ़ंक्शन | तुलना आधार | विवरण |
|---|---|---|
array_diff() | **मान** (values) | पहली सरणी के मान जो अन्य में नहीं |
array_diff_key() | **कुंजियाँ** (keys) | पहली सरणी की कुंजियाँ जो अन्य में नहीं |
array_diff_assoc() | **कुंजी + मान** | पहली सरणी के जोड़े जो अन्य में नहीं (कुंजी और मान दोनों) |
array_diff_ukey() | कुंजी (कॉलबैक) | उपयोगकर्ता-परिभाषित कुंजी तुलना |
array_diff_uassoc() | कुंजी+मान (कॉलबैक) | उपयोगकर्ता-परिभाषित तुलना |
व्यावहारिक उदाहरण
<?php // डेटाबेस रिकॉर्ड्स में नई कुंजियाँ ढूंढना $oldRecords = ['id1' => 'data1', 'id2' => 'data2']; $newRecords = ['id1' => 'data1', 'id2' => 'data2', 'id3' => 'data3', 'id4' => 'data4']; $newKeys = array_diff_key($newRecords, $oldRecords); // ['id3' => 'data3', 'id4' => 'data4'] // कॉन्फ़िगरेशन में नई सेटिंग्स ढूंढना $defaultConfig = ['debug' => false, 'log' => true]; $userConfig = ['debug' => true, 'log' => true, 'theme' => 'dark']; $customSettings = array_diff_key($userConfig, $defaultConfig); // ['theme' => 'dark'] ?>
महत्वपूर्ण नोट्स
- कुंजियों की तुलना **सख्ती से** की जाती है (प्रकार और मान दोनों)।
- संख्यात्मक कुंजियाँ
0,1... के रूप में तुलना की जाती हैं। - पहली सरणी की कुंजियाँ संरक्षित रहती हैं परिणाम में।
- एक या अधिक तुलना सरणियाँ पास की जा सकती हैं।