Looping through the contents of a CSV

I need to loop through the contents of a CSV and pass the values of columns 1 and 6 to a function which then does something with the values, the program should then move to the next row of the csv and grab the same column values and pass those to my function. The program should loop 10 times. Once the loop is complete the first 10 rows of the scv should be deleted.

Can someone help please?

LVL 1
MayoorPatelAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
xBelloxConnect With a Mentor Commented:
Oops... Little mistake... It isn't $f[0], $f[1]... It ss $columns[0].$columns[1]

<?
		$filename = 'test.csv';
        $f = file($filename);        
        for ($i=0; ($i<10 && $i<count($f)); $i++) {
                $columns = explode(";", $f[$i]);                 
				your_function($columns[0],$columns[1],$columns[2],$columns[3],$columns[4],$columns[5]);
        }      
		if(count($f)>=$i) file_put_contents($filename,join("\n",array_slice($f,10)));
?>

Open in new window

0
 
flob9Commented:
this is a repost to this one : http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/Q_24568102.html


<?php
 
//read the data
$lines = split("\n",file_get_contents("file.csv"));
 
 
//parse first 10 lines
$cnt = 0;
foreach($lines as $line)
{
  list($col1,$col2,$col3,$col4,$col5,$col6) = split(";",$line);
  //for each line, call my_func
  my_func($col1,$col2,$col3,$col4,$col5,$col6);
  $cnt++;
  if($cnt==10)
    break;
}
//once done, put the remaining data back into the csv file
if(count($lines)>$cnt)
	file_put_contents("file.csv",join("\n",array_slice($lines,10)));
 
?>

Open in new window

0
 
xBelloxCommented:
Try this (Remeber to change 'test.csv' to your file name, change ";" to your csv delimiter    and your_function to your function name):



<?
	$filename = 'test.csv';
	$f = file($filename);
	
	for ($i=0; ($i<10 && $i<count($f)); $i++) {
		$columns = explode(";", $f[$i]);
		your_function($f[0],$f[1],$f[2],$f[3],$f[4],$f[5]);
	}
	
?>

Open in new window

0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
MayoorPatelAuthor Commented:
Flob your solution was NOT complete
0
 
MayoorPatelAuthor Commented:
Bravo!
0
 
flob9Commented:
I don't see the difference
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.