2017-09-20 13 views
0

Je reçois sans cesse l'erreur ci-dessus lorsque l'importation de données à partir csv en utilisant le code suivant:PHP Notice: Undefined offset erreur lors de l'importation de .csv

$csv_data=file_get_contents("data3_received.csv"); 
foreach(preg_split("/((\r?\n)|(\r\n?))/", $csv_data) as $line){ 
list($service_id, $ki3) = explode(',', $line,2); 

Les importations de données comme prévu, mais le journal des erreurs est de remplissage comme nous utilisons le même code dans plusieurs scripts PHP. L'erreur est sur la ligne suivante:

list($service_id, $ki3) = explode(',', $line,2); 

Essayé en utilisant la suggestion: Undefined offset error on php when importing a CSV en vain, et d'autres sur le site.

Toute aide avec ceci serait la bienvenue.

Répondre

2

Puisque list() tente d'affecter deux variables, il tente d'accéder à deux éléments de tableau [0] et [1]. Parce qu'il n'y a pas de virgule sur la ligne, [1] n'existe pas.

Essayez quelques fonctions différentes:

$csv_data = file("data3_received.csv", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

foreach($csv_data as $line) { 
    $data[] = str_getcsv($line); 
} 

Pour obtenir des variables individuelles, vous devez vérifier si vous avez plus d'une colonne, ou quelque chose de similaire:

if(count($data = str_getcsv($line)) > 1) { 
    list($service_id, $ki3) = $data; 
} else { 
    $service_id = $data[0]; 
} 
+0

Capable de courir maintenant sans erreur, mais comment puis-je utiliser les données, c'est-à-dire chaque valeur de colonne en tant que variable? – djd

+0

Modifié une possibilité. – AbraCadaver

+0

cela fait exactement ce que j'ai besoin de faire, merci! – djd