[英]Creating an associative array from a csv file php
我正在尝试读取一个csv文件,然后将第一列和第21列存储在关联数组中,以使第1列成为键,而第21列成为值。
稍后,我想根据“键”提取记录。 包含代码的PHP文件是upload.php
$calls = array();
$file_handle = fopen($C1.".File.csv","r"); // $C1 is defined before.
//Just appending something to the file name. This file exists.
while (!feof($file_handle) ) {
$line= fgetcsv($file_handle, 1024);
$calls[$line[0]] = $line[20]; //Line 94 of this file
}
fclose($file_handle);
print_r($calls);
我得到这个错误
Undefined offset: 20 in upload.php on line 94
我要去哪里错了。
零索引数组中的第二十个“列”为$line[19]
根据您的评论进行更新(以及随后的修改):
错误显然在未设置$line[20]
循环期间的某个点指出-如果每行都有合适的列数,那么我能想到的唯一另一个原因是在该行的末尾有一个空行CSV文件。
例如。
1. foo, bar, baz
2. a , b , c
3. <-- empty line as a result of carriage return
所以...您想在fgetcsv
之前检查trim($line)!=''
和/或作为良好错误处理的一部分,检查数组的长度是否大于您尝试读取的最高索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.