PHP में एक सरणी के डुप्लिकेट मानों को किसी विशिष्ट कुंजी (जैसे 'hobby') के आधार पर समूहित करके बहुआयामी सरणी में मर्ज किया जा सकता है। यह डेटा समूहीकरण और एकत्रीकरण के लिए उपयोगी है।
उदाहरण
<?php
$my_arr = array(
array('Age'=>23, 'name'=>'Joe', 'hobby'=>'Cycling'),
array('Age'=>26, 'name'=>'Hannah', 'hobby'=>'Rowing'),
array('Age'=>30, 'name'=>'Dev', 'hobby'=>'Cycling'),
array('Age'=>30, 'name'=>'Dev', 'hobby'=>'Cycling') // डुप्लिकेट
);
foreach ($my_arr as $entry => $vals) {
$new_vals[$vals['hobby']][] = $vals;
}
echo "The unique array elements are ";
print_r($new_vals);
?>
आउटपुट
The unique array elements are Array
(
[Cycling] => Array
(
[0] => Array ( [Age] => 23 [name] => Joe [hobby] => Cycling )
[1] => Array ( [Age] => 30 [name] => Dev [hobby] => Cycling )
[2] => Array ( [Age] => 30 [name] => Dev [hobby] => Cycling )
)
[Rowing] => Array
(
[0] => Array ( [Age] => 26 [name] => Hannah [hobby] => Rowing )
)
)
काम कैसे करता है:
foreachप्रत्येक उप-सरणी पर पुनरावृत्त करता है।$vals['hobby'](जैसे "Cycling") को नई सरणी$new_valsकी कुंजी के रूप में उपयोग किया जाता है।[]ऑपरेटर उस कुंजी के तहत पूरी उप-सरणी$valsको जोड़ता है।- समान शौक वाले सभी एंट्रीज़ स्वचालित रूप से उसी कुंजी के तहत समूहित हो जाते हैं।
महत्वपूर्ण नोट
यह कोड डुप्लिकेट हटाता नहीं — यह उन्हें समूहित करता है। आउटपुट में "Dev" की दो समान एंट्रीज़ "Cycling" के तहत मौजूद हैं। वास्तविक डुप्लिकेट हटाने के लिए अतिरिक्त लॉजिक चाहिए।
डुप्लिकेट हटाकर समूहित करने का उन्नत संस्करण
<?php
$unique = [];
foreach ($my_arr as $person) {
$key = $person['hobby'];
// व्यक्ति की विशिष्ट पहचान बनाएँ (जैसे name+age)
$personKey = $person['name'] . '|' . $person['age'];
if (!isset($unique[$key][$personKey])) {
$unique[$key][$personKey] = $person;
}
}
// कुंजियाँ रीसेट करें
foreach ($unique as &$group) {
$group = array_values($group);
}
print_r($unique);
?>
अनुप्रयोग
- उपयोगकर्ताओं को रुचि/विभाग/भूमिका के आधार पर समूहित करना।
- उत्पादों को श्रेणी/ब्रांड के अनुसार व्यवस्थित करना।
- लॉग एंट्रीज़ को त्रुटि प्रकार/गंभीरता के अनुसार एकत्र करना।