एक बड़े सरणी से प्रत्येक nth आइटम का चयन करने के लिए सबसे अधिक कुशल तरीका क्या होगा? क्या ऐसा करने का एक 'स्मार्ट' तरीका है या एकमात्र रास्ता लूप कर रहा है?एक सरणी से प्रत्येक nth आइटम का चयन
कुछ बिंदुओं पर विचार करने के:
- सरणी
- 130 000 आइटम के साथ काफी बड़ी है मैं हर 205 वां आइटम
- आइटम संख्यानुसार अनुक्रमित नहीं कर रहे हैं का चयन करने के लिए है, इसलिए
for($i = 0; $i <= 130000; $i += 205)
काम नहीं करेगा :
अब तक, इस लिए सबसे कारगर विधि मैं के साथ आ गया है
या सापेक्ष के साथ एक ही:
$result = array();
$i = 0;
foreach($source as $value) {
if($i % 205 == 0) {
$result[] = $value;
}
$i++;
}
इन विधियों काफी धीमी गति से हो सकता है, वहाँ सुधार करने के लिए किसी भी तरह से है? या मैं बस यहाँ बाल बांट रहा हूँ?
उचित स्पष्टीकरण के साथ संपादित करें
अच्छा जवाब चारों ओर, स्वीकार किए जाते हैं जवाब के रूप में सबसे फिटिंग लेने की कोशिश की। धन्यवाद!
यह मुझे उचित लगता है - क्या आप वाकई बाधा उत्पन्न कर रहे हैं? यदि नहीं, तो इसे देखने के लिए प्रोफाइल! इसमें कितना समय लगता है? –
@ डोमिनिक, यह एक बाधा का इतना अधिक नहीं है, केवल एक दिलचस्प समस्या है जिसके लिए मुझे उचित समाधान नहीं मिला। ऐसा मत सोचें कि 'सही' उत्तर निष्पादन समय के कुछ मिलीसेकंड से अधिक दाढ़ी देगा, लेकिन यह जानना अच्छा लगेगा। :) –