PHP में ऐरे रूपांतरण का अनुकूलन
हमेशा स्ट्रिंग को ऐरे में विभाजित करने की आवश्यकता नहीं होती, इसके साथ कुछ करने के लिए।
आइए एक उदाहरण देखें।
निम्नलिखित उदाहरण में, कोड लेखक जाँचता है कि
क्या स्ट्रिंग में अंक 3 है:
<?php
$str = '12345';
$arr = explode('', $str); // ऐरे में विभाजित करें
if (in_array(3, $arr)) {
echo 'है';
} else {
echo 'नहीं';
}
?>
लेखक बहुत अच्छा कर रहा है - अपनी खुद की कामचलाऊ व्यवस्था लिखने के बजाय PHP के अंतर्निहित कार्यों का उपयोग कर रहा है।
लेकिन कोड अभी भी इष्टतम नहीं है: यहाँ कोई
स्ट्रिंग को ऐरे में विभाजित करने की आवश्यकता नहीं है, क्योंकि मौजूद है
तैयार फ़ंक्शन strpos, जो स्ट्रिंग में
खोज करता है:
<?php
$str = '12345';
if (strpos(str, 3) !== false) {
echo 'है';
} else {
echo 'नहीं';
}
?>
यहाँ ऐरे में विभाजित करना खराब क्यों है? क्योंकि सबसे पहले, ऐरे में विभाजन पर प्रोसेसर संसाधन खर्च होते हैं, दूसरे, परिणामी ऐरे रैम में जगह लेगा (और यह जगह स्ट्रिंग द्वारा ली गई जगह से अधिक होगी)।
सीख: यदि ऐसा न करने का कोई तरीका है तो स्ट्रिंग को ऐरे में विभाजित न करें।
निम्नलिखित कोड में, कोई प्रोग्रामर स्ट्रिंग के अक्षरों को उल्टे क्रम में पलट रहा है। इस प्रोग्रामर के समाधान को अनुकूलित करें:
<?php
$str = '123345';
$rev = implode('', array_reverse(explode('', $str)));
echo $rev; // आउटपुट '54321' होगा
?>
निम्नलिखित कोड में, कोई टेक्स्ट में शब्दों की संख्या ढूंढ रहा है। इस प्रोग्रामर के समाधान को अनुकूलित करें:
<?php
$str = 'aaa bbb ccc'; // कोई लंबी स्ट्रिंग
echo count(explode(' ', $str));
?>