我需要快速逐行读取大型csv文件,并将字段划分成一个数组。csv文件有10万行。
// Example 1, works in 3.5 seconds
if(false !== $handle = fopen("data.csv", "r")) {
while(($data = fgetcsv($handle, 0, ";"))) {
$arData[] = $data;
}
}
// Example 2, works in 0.3 seconds
if(false !== $handle = fopen("data.csv", "r")) {
while(($data = fgets($handle))) {
$arData[] = explode(";", $data);
}
}
为什么速度差异如此严重?还是我做错了什么?
该文档说,fgetcsv该函数与相似fgets,只是将结果分成一个数组。
扬帆大鱼