ursvmg Posted April 27, 2010 Share Posted April 27, 2010 Hi all, I have a requirement to read a text file with around 50k lines of data. I need to prepare an output array like below. 1) First i need to start with the record 1. Get every 50th record and store it in the array. Once end of file reached and if limit not crossed 5000 the proceed to next step 2) Now i need to start with second record. Get every 50th record and store it in the array. This would iterate until the output array limit reaches 5000. I do not want to start from top every time, as I feel, traversing the entire file every time would compromise the performance. Is it true? Or Is there any other better way to achieve it? Do we have any user-defined PHP classes to achieve this? Regards, Ursvmg Quote Link to comment https://forums.phpfreaks.com/topic/199968-skip-n-records/ Share on other sites More sharing options...
Daniel0 Posted April 27, 2010 Share Posted April 27, 2010 Though untested, this should do it in Θ(n): $res = array(); for ($i = 0, $size = 0, $max = count($lines); $size <= 5000; ++$i) { for ($j = $i; $j < $max; $j += 50) { $res[] = $lines[$j]; ++$size; } } Quote Link to comment https://forums.phpfreaks.com/topic/199968-skip-n-records/#findComment-1049567 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.