我有一个 csv 文件,看起来像这样
col1, col2, col3
1 , John, ABC
我需要ABC
在第 3 列中解析为,A,B,C
因为新关系需要col1, col3 (each letter)
.
$j
是行,$i
是列。
$j = 0;
while (($row = fgetcsv($handle, 1000, ',')) !== false) {
$i = 0;
$id = 0;
foreach ($row as $field) {
# save the id of each row
if($j >0 && $i == 0){
$id = $field;
}
# parse the third column for non-header rows)
if($j > 0 && $i >= 3){
$char_array = str_split($field);
foreach($char_array as $value){
//echo $value;
//echo $id.$value."<br/>";
mysql_query("INSERT INTO sample VALUES('".$id."', '".$value."')");
}
}
$i = $i + 1; # increment the column
}
$j = $j +1; # move to the next row
}
这很慢。我有超过 720 行,其中大多数在第三列中有超过 5 个字符。
ABCDE
,所以我们平均有 720 x 5。这是一个巨大的数字。我明白了timeout
。我可以更改本地执行的最长时间,但我需要在我的学生 linux 帐户上运行它。我没有那种特权。我怀疑是因为超时(这次没有说),我已经起来了
id = 502
。我错过了其余的(我最多有 720 行)。
我能做些什么?我只对第一列和第三列感兴趣。