我正在尝试在php中使用数组并且感到困惑

时间:2018-06-20 19:32:23

标签: php arrays csv

我的csv文件如下所示。

#file contents
EC023,2
EC026A,3
EC025,7
EC027,67
EC031,567
EC033,78
EC034,234
EC038,67
EC038A,67
EC039,60
EC039A,100

使用php库parsecsv将文件加载到数组中。

Array ( [0] => Array ( [EC023] => EC026A [2] => 3 ) 
        [1] => Array ( [EC023] => EC025 [2] => 7 ) 
        [2] => Array ( [EC023] => EC027 [2] => 67 )  
        [3] => Array ( [EC023] => EC031 [2] => 567 )  
        [4] => Array ( [EC023] => EC033 [2] => 78 )  
        [5] => Array ( [EC023] => EC034 [2] => 234 )  
        [6] => Array ( [EC023] => EC038 [2] => 67 )  
        [7] => Array ( [EC023] => EC038A [2] => 67 )  
        [8] => Array ( [EC023] => EC039 [2] => 60 )  
        [9] => Array ( [EC023] => EC039A [2] => 100 ) ) 

但是我需要处理每组数据。例如,在第一行中,我需要创建一个变量$ code ='EC023'和$ qty = 2

多年来我一直在用PHP处理Mysql数据,但这是我第一次尝试导入csv文件并对其进行处理。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不确定您是否需要该库来解析CSV文件。这种更简单的方法对您有用吗?

编辑:添加了文件支持。这种方法可以轻松处理1GB或更大的文本文件,以及您描述的数亿条记录(只要您的PHP配置允许)。

$f = fopen("inputfile.txt", "r");
while (($line = fgets($f)) !== false) {
     // process the line read.
     $row = str_getcsv($arr[$i]); 
     $code = $row[0];
     $qty = $row[1];
     echo $code . ": " . $qty . "<br>";
}
fclose($f);

答案 1 :(得分:0)

那么您可以使用文件功能。参见http://php.net/manual/en/function.file.php。它将文件的内容读取到数组。文件中的每一行都是一个数组元素。读取csv文件的内容后,可以使用循环遍历数组。

或者,您也可以使用内置的php函数:str_getcsvfgetcsv