snehal
snehal

Reputation: 449

How to skip specific line from csv file using fgetcsv function

I have function which read csv file in the array. my code is

public function csvExtract() 
     {   


       $file_handle = fopen(text.csv, 'r');

       while (!feof($file_handle) )
        {
            arraydata[] = fgetcsv($file_handle, 1024);
        }

        fclose($file_handle);
    }

what i need is:

my file contain last row which has FINAL TOTAL that row i want to skip .

how to do this. Can any one help me on this.

thank you.

Upvotes: 1

Views: 1705

Answers (3)

NDM
NDM

Reputation: 6830

You can skip any loop in PHP with the continue statement. This will only skip 1 iteration of the loop, as apposed to the break statement, which will end the loop completely.
Using this, you can form a condition for when the loop should skip:

while (!feof($file_handle)) {
    $csv = fgetcsv($file_handle, 1024);
    // check your condition and skip if needed...
    if (in_array('FINAL TOTAL', $csv)) continue;
    $data[] = $csv;
}

Upvotes: 1

Mark Baker
Mark Baker

Reputation: 212412

Once you've finished your read loop:

end($arraydata);
$key = key($arraydata);
unset($arraydata[$key]);

or simply

array_pop($arraydata);

Upvotes: 2

donald123
donald123

Reputation: 5739

quick dirty solution

 ...
 fclose($file_handle);
 if($arraydata) {
    unset($arraydata[count($arraydata)-1)]);
 }

just "delete" the last row from your import

Upvotes: 0

Related Questions