【问题标题】:SplFileObject not reading CSV properlySplFileObject 未正确读取 CSV
【发布时间】:2016-10-07 06:57:15
【问题描述】:

所以我必须读取多个 CSV 文件,合并它们的标题(通过删除重复项)并将值放入最终(合并的)CSV 文件中。我第一次尝试使用SplFileObject。我从阅读文件开始。以下是详细内容

file1.csv

"A","B","C","D
1,2,3,4

merge.csv

$file = new SplFileObject('file1.csv');
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    print_r($row);
}

它输出:

Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => D
1,2,3,4
)

为什么它没有为下一行创建另一个数组?

【问题讨论】:

    标签: php csv splfileobject


    【解决方案1】:

    试试这个,将数据存储在数组中并打印出来。

    $file = new SplFileObject('file1.csv');
    $file->setFlags(SplFileObject::READ_CSV);
    foreach ($file as $row) {
       $new_array[] = $row;
    }
    print_r($new_array);
    

    输出

    Array
    (
        [0] => A
        [1] => B
        [2] => C
        [3] => D
        [4] => 1
        [5] => 2
        [6] => 3
        [7] => 4
    )
    

    试试这个,

    $file = fopen('file1.csv', 'r');
    while (($line = fgetcsv($file)) !== FALSE) {
      //$line is an array of the csv elements
      print_r($line);
    }
    fclose($file);
    

    【讨论】:

    • 我需要一个基于SPLFileObject 的解决方案,而您的解决方案不起作用。它打印相同的输出。
    • 原来是我的 CSV 文件中的问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2020-03-11
    • 2014-08-24
    • 2021-01-05
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多