PHP ऐरे खाली तत्व रख सकते हैं—खाली स्ट्रिंग्स (“”) , नल मान (NULL), या खाली ऐरे (array())—जिससे समस्याएँ हो सकती हैं। यह लेख इन तत्वों को हटाने के कुशल तरीकों का पता लगाता है, स्पष्टता और सर्वोत्तम प्रथाओं पर ध्यान केंद्रित करता है।
विषय-सूची
array_filter()
का उपयोग करनाarray_diff()
का उपयोग करनाunset()
का उपयोग करना (और आप इसे क्यों अवॉइड करना चाहेंगे)- सही विधि चुनना
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()
से बचें जब तक कि आपके पास कुंजी द्वारा तत्वों को हटाने और पुनः अनुक्रमण परिणाम को स्वीकार करने का कोई सम्मोहक कारण न हो।