2

我有一个 CSV 文件,使用 fgetcsv 我可以愉快地将每一行生成为一个数组。

管道表示结构和细胞分裂,下面的逗号是输入的一部分,需要保留。

abc,456|5hs6|dfdsf,56
abc,456|5hs6|dfdsf,56
abc,456|5hs6|dfdsf,56
abc,456|5hs6|dfdsf,56

鉴于图中将在数据中使用逗号,最好使用管道分隔。

Array(
[0] => abc,456|5hs6|dfdsf,56
[1] => abc,456|5hs6|dfdsf,56
[2] => abc,456|5hs6|dfdsf,56
[3] => abc,456|5hs6|dfdsf,56
)
4

2 回答 2

4

如果您的 CSV 文件与之后您希望在数组中拥有的文件不同,例如 CSV 类似于

"1","2","3","4","5","6"
"1","2","3","4","5","6"
…

或其他任何实际需要解析它的内容fgetcsv然后使用

$result = array();
while (($line = fgetscsv($handler) !== false) {
  $result[] = implode(',', $line);
}

如果您的 CSV 文件之后已经包含您想要在数组中拥有的内容,例如

1,2,3,4,5,6
1,2,3,4,5,6
…

那么您不需要将其解析为 CSV(速度较慢),但可以

$result = array();
while (($line = fgets($handler) !== false) {
  $result[] = $line;
}

或者只是使用$array = file('filename.csv')

不同之处在于,a) 隐含假设 csv-source,用作分隔符,因为我们只是按照文件中的说明使用它们,并且 b) 它不会删除任何附件(您可以在"为了避免其中的 a,被视为 csv 分隔符),但这在这里似乎很有用。

于 2011-06-29T09:22:52.913 回答
3

我不确定这是你想要的,但是

$lines = file("filename.csv");

将每一行filename.csv放入$lines(作为字符串)。

于 2011-06-29T09:24:30.113 回答