php - 读取 CSV,但创建包含行的单个数组,而不是多维数组?

标签 php arrays csv fgetcsv

我有一个 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/

相关文章:

javascript - 将数组中的附加值添加到工具提示

javascript - JS - 分割数组字符串并将两个部分作为参数传递给方法

javascript - 当数组只有 1 个元素时,从 JavaScript 数组中获取键

linux - 使用 AWK 过滤 CSV 文件

python - 如何使用 QDataStream 在 Python 中打开一个 bin 文件

python - 来自 csv 的 Keras 文本分类自定义数据集

php - 注册系统 PHP, mysqli ( Hashing )

php - Cron Jobs 在运行时滞后于我的网站

php - 使用 preg_split ("/,/"时出现 SQL 语法错误,

php - 在 Opencart admin 'Order Info' 页面上添加自定义字段