2014-11-11 16 views
7

Ho un file CSV con 3 colonne: indirizzo e-mail, nome e cognome. Ho avuto la fase in cui posso stampare la matrice utilizzando il seguente codice:Looping attraverso un csv con fgetcsv

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

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

fclose($file); 
?> 

viene stampato l'array, quindi ogni campo di fila. Quello che voglio che stampi è puramente i valori nella prima colonna della riga. Come si farebbe, la documentazione su fgetcsv mi sembra molto schematica (un parente principiante).

Grazie.

+0

Hai controllato aiuto ufficiale? http://php.net/manual/en/function.fgetcsv.php – Sal00m

risposta

12

Il primo esempio nella documentazione fgetcsv contiene i nugget di ciò che è necessario.

http://php.net/manual/en/function.fgetcsv.php

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

fgetcsv restituisce un array indicizzato numericamente di rappresentare le colonne, quindi si desidera solo per stampare la prima colonna.

1

Sei abbastanza vicino. Hai già la matrice, quindi potresti semplicemente stampare la prima colonna.

Tuttavia, è possibile utilizzare anche fgetcsv come variabile di controllo per il ciclo.

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

Invece di print_r si può provare echo

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

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

fclose($file); 
?> 
Problemi correlati