user3725781
user3725781

Reputation: 735

Looping through a csv with fgetcsv

I have a csv file with 3 columns: email address, first name and last name. I have got the stage where I can print out the array using the following code:

<?php
$file = fopen("testEmails.csv","r");

while(! feof($file))
{
print_r(fgetcsv($file));
}

fclose($file);
?>

This prints the array, so every field in a row. What I want it to print is purely the values in the first column of the row. How would this be done, documentation on fgetcsv seems very sketchy to me (a relative beginner).

Thanks.

Upvotes: 10

Views: 43371

Answers (3)

Cody Caughlan
Cody Caughlan

Reputation: 32748

The first example in the fgetcsv() documentation contains the nuggets of what you need.

$file = fopen("testEmails.csv","r");

while (($data = fgetcsv($file)) !== FALSE)
{
    echo "email address " . $data[0];
}

fgetcsv() returns a numerically indexed array of representing the columns, so you just want to print the first column.

Upvotes: 30

mainstreetmark
mainstreetmark

Reputation: 703

You're quite close. You could just print the first column since you already have the array.

But, you could also use fgetcsv itself as the control variable for the loop.

while (($array = fgetcsv($file)) !== FALSE) {
      print_r($array[0]);
}

Upvotes: 1

Penny
Penny

Reputation: 816

Instead of print_r you may try echo

<?php
$file = fopen("testEmails.csv","r");

while(! feof($file))
{
echo fgets($file). "<br />";
}

fclose($file);
?>

Upvotes: 0

Related Questions