PHP

PHP सरणियों से खाली तत्वों को प्रभावी ढंग से हटाना

Spread the love

PHP ऐरे खाली तत्व रख सकते हैं—खाली स्ट्रिंग्स (“”) , नल मान (NULL), या खाली ऐरे (array())—जिससे समस्याएँ हो सकती हैं। यह लेख इन तत्वों को हटाने के कुशल तरीकों का पता लगाता है, स्पष्टता और सर्वोत्तम प्रथाओं पर ध्यान केंद्रित करता है।

विषय-सूची

array_filter() का उपयोग करना

array_filter() सबसे अधिक लचीलापन प्रदान करता है। यह प्रत्येक तत्व पर एक कॉलबैक फ़ंक्शन लागू करता है, केवल उन तत्वों को रखता है जिनके लिए कॉलबैक true देता है।


 hello [3] => world [6] => ! )


// 0 को खाली मानने के लिए वैकल्पिक कॉलबैक:
$filteredArray = array_filter($array, function ($element) {
  return !empty($element) && $element !== 0;
});

print_r($filteredArray); // आउटपुट: Array ( [1] => hello [3] => world [6] => ! )

?>

यह दृष्टिकोण बेहतरीन नियंत्रण प्रदान करता है। आप अपने एप्लिकेशन की आवश्यकताओं के आधार पर “खाली” की विभिन्न परिभाषाओं को संभालने के लिए कॉलबैक को आसानी से अनुकूलित कर सकते हैं।

array_diff() का उपयोग करना

array_diff() एक ऐरे की दूसरे ऐरे के साथ तुलना करता है, केवल पहले वाले में मौजूद तत्वों को लौटाता है। यह खाली मानों के ज्ञात सेट को हटाने के लिए उपयोगी है।


 hello [3] => world [6] => ! [5] => 0 )
?>

array_diff() सरल है लेकिन array_filter() की तुलना में कम अनुकूलनीय है। इसके लिए आपको हटाए जाने वाले खाली मानों को स्पष्ट रूप से सूचीबद्ध करने की आवश्यकता है।

unset() का उपयोग करना (और आप इसे क्यों अवॉइड करना चाहेंगे)

unset() कुंजी द्वारा तत्वों को हटाता है। जबकि संभव है, यह आम तौर पर अन्य विधियों की तुलना में कम कुशल और कम पठनीय है, खासकर बड़े ऐरे के लिए।


 $value) {
  if (empty($value)) {
    unset($array[$key]);
  }
}
print_r($array); // आउटपुट: Array ( [1] => hello [3] => world [6] => ! [5] => 0 )
?>

unset() ऐरे को फिर से अनुक्रमित भी करता है, संभावित रूप से कुंजी-आधारित पहुँच को बाधित करता है यदि आपकी कुंजियाँ संख्यात्मक नहीं हैं। इस विधि से बचें जब तक कि आपको कुंजी द्वारा तत्वों को हटाने की विशेष रूप से आवश्यकता न हो और पुनः अनुक्रमण स्वीकार्य हो।

सही विधि चुनना

अधिकांश मामलों में, इसके लचीलेपन और दक्षता के कारण array_filter() की सिफारिश की जाती है। array_diff() खाली मानों के पूर्वनिर्धारित सेट से निपटने के लिए उपयुक्त है। unset() से बचें जब तक कि आपके पास कुंजी द्वारा तत्वों को हटाने और पुनः अनुक्रमण परिणाम को स्वीकार करने का कोई सम्मोहक कारण न हो।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *