我有一个 CSV 文件,使用 fgetcsv 我可以愉快地将每一行生成为一个数组。
管道表示结构和细胞 split ,下面的逗号是逗号,是输入的一部分,需要保留。
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
)
最佳答案
如果您的 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 源使用 ,
作为分隔符,因为我们只是按照文件中的注释来使用它们,b) 它将不删除任何附件(您可以在 "
中包含一个值以避免 ,其中的
被视为 csv 分隔符),但这在这里似乎很有用。
关于php - 读取 CSV,但创建包含行的单个数组,而不是多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6518297/