कारण के लिए कि मैं यहां चर्चा नहीं करूंगा, मुझे फ़ाइलों की एक बड़ी निर्देशिका का विश्लेषण करने के लिए मजबूर होना पड़ता है (हम 100.000 < x < 1.000.000+) बात कर रहे हैं और फ़ाइललिस्ट को एक के रूप में वापस कर सकते हैं सरणी।विशाल arrays पर नकारात्मक ऑफसेट के साथ array_slice
मैं पहले ही फाइल सूची को कैशिंग कर रहा हूं, समस्या array_slice है।
हाँ, एक पकड़ने है, क्योंकि, फ़ाइल की इस सूची में "पृष्ठवार" होना चाहिए उन्हें 16.
के ब्लॉक में लौटने क्या मैं कर रहा हूँ यह है:
$items_per_page = 16;
$offset = ($current_page * $items_per_page) + $items_per_page;
array_slice($array,-$offset,$items_per_page);
यह आसान है देखें कि कुछ पृष्ठों में हमारे पास विशाल ऑफसेट होंगे। पेज चार (ऑफसेट = -80) से भी शुरू होता है, वहां एक बड़ा प्रदर्शन हिट होता है।
इस प्रकार के सरणी अंकन को प्राप्त करने के लिए array_slice के बजाय मैं क्या उपयोग कर सकता हूं?
धन्यवाद
** एक ** निर्देशिका में 100k फ़ाइलें केवल गलत कार्यान्वयन है ... – zerkms
हां यह बहुत गलत है। लेकिन मुझे यही काम करना है, यह मेरी पसंद नहीं है, समय सीमा के बाद मैं इस गड़बड़ी को बदलना सुनिश्चित करूँगा। – 0plus1
'preserve_keys' का उपयोग करने से मदद मिल सकती है (हालांकि सुनिश्चित नहीं है)। 'array_slice ($ array, - $ ऑफसेट, $ item_per_page, true);' –