PHP में सरणी से डुप्लिकेट मान हटाने का एक चतुर तरीका array_flip() फ़ंक्शन का दो बार उपयोग करना है। चूंकि सरणी कुंजियाँ अद्वितीय होनी चाहिए, मानों को कुंजी बनाकर डुप्लिकेट स्वचालित रूप से हट जाते हैं।
उदाहरण
<?php $my_arr = array(45, 65, 67, 99, 81, 90, 99, 45, 68); echo "The original array contains \n"; print_r($my_arr); $my_arr = array_flip($my_arr); // मान -> कुंजी $my_arr = array_flip($my_arr); // कुंजी -> मान (डुप्लिकेट गायब) $my_arr = array_values($my_arr); // संख्यात्मक कुंजियाँ रीसेट echo "\n The array after removing duplicate elements is \n"; print_r($my_arr); ?>
आउटपुट
The original array contains Array ( [0] => 45 [1] => 65 [2] => 67 [3] => 99 [4] => 81 [5] => 90 [6] => 99 [7] => 45 [8] => 68 ) The array after removing duplicate elements is Array ( [0] => 45 [1] => 65 [2] => 67 [3] => 99 [4] => 81 [5] => 90 [6] => 68 )
चरण-दर-चरण व्याख्या:
array_flip($my_arr): मान कुंजी बन जाते हैं। डुप्लिकेट मान (45, 99) एक ही कुंजी बनाते हैं — दूसरी बार ओवरराइट होता है।- दूसरा
array_flip(): कुंजियाँ वापस मान बन जाती हैं, अब अद्वितीय। array_values(): संख्यात्मक कुंजियाँ 0,1,2... क्रमिक रूप से रीसेट करता है।
बिल्ट-इन विकल्प: array_unique()
<?php $my_arr = array(45, 65, 67, 99, 81, 90, 99, 45, 68); $unique = array_unique($my_arr); $unique = array_values($unique); // कुंजियाँ रीसेट print_r($unique); ?>
यह अधिक पठनीय और सीधा है। array_flip ट्रिक पुराने PHP संस्करणों के लिए उपयोगी थी या जब कुंजी-संरक्षण जरूरी हो।
तुलना
| विधि | फायदे | नुकसान |
|---|---|---|
array_flip x2 | कुंजी-संरक्षित (पहली घटना की कुंजी रखता है), तेज़ | केवल स्ट्रिंग/इंट मानों के लिए काम करता है, कम पठनीय |
array_unique() | मानक, पठनीय, सभी प्रकार समर्थित | थोड़ा धीमा, पहली घटना रखता है |
सहयोगी सरणियों के लिए
<?php $arr = ['a'=>1, 'b'=>2, 'c'=>1, 'd'=>3]; $unique = array_unique($arr); // कुंजियाँ संरक्षित: ['a'=>1, 'b'=>2, 'd'=>3] ?>