निश्चित रूप से उपयोग करना array_mapऔर अगर ArrayAccessवस्तुओं को प्राप्त करने के लिए लागू करने वाले कंटेनर का उपयोग करना इस बारे में जाने का सिर्फ एक चालाक, अर्थपूर्ण तरीका है?
सरणी मानचित्र शब्दार्थ अधिकांश भाषाओं और कार्यान्वयनों के समान हैं जिन्हें मैंने देखा है। यह इनपुट एरे तत्व (उच्च स्तरीय भाषा संकलन / रनटाइम प्रकार की प्राथमिकता की अनदेखी) के आधार पर एक संशोधित सरणी वापस करने के लिए डिज़ाइन किया गया है; एक लूप अधिक तर्क प्रदर्शन करने के लिए है।
आईडी / पीके द्वारा वस्तुओं को प्राप्त करने के लिए, यदि आप एसक्यूएल का उपयोग कर रहे हैं या नहीं (यह सुझाव दिया गया लगता है) के आधार पर, मैं यह सुनिश्चित करने के लिए एक फिल्टर का उपयोग करूंगा कि मुझे वैध पीके की एक सरणी मिलती है, फिर अल्पविराम के साथ निहित करें और एसक्यूएल IN()क्लॉज में जगह दें परिणाम-सेट लौटाएँ। यह एसक्यूएल के माध्यम से कई के बजाय एक कॉल करता है, थोड़ा सा call->waitचक्र को अनुकूलित करता है। सबसे महत्वपूर्ण बात यह है कि मेरा कोड किसी भी भाषा के किसी व्यक्ति के पास योग्यता की डिग्री के साथ अच्छी तरह से पढ़ा होगा और हम परिवर्तनशीलता की समस्याओं में नहीं चलते हैं।
<?php
$arr = [0,1,2,3,4];
$arr2 = array_map(function($value) { return is_int($value) ? $value*2 : $value; }, $arr);
var_dump($arr);
var_dump($arr2);
बनाम
<?php
$arr = [0,1,2,3,4];
foreach($arr as $i => $item) {
$arr[$i] = is_int($item) ? $item * 2 : $item;
}
var_dump($arr);
यदि आप जानते हैं कि आप क्या कर रहे हैं तो आपको कभी भी म्यूटेबिलिटी की समस्या नहीं होगी (यदि आप ओवर राइटिंग का इरादा रखते हैं तो आप $arrहमेशा $arr = array_mapस्पष्ट और स्पष्ट हो सकते हैं ।