SplFileObject 没有正确读取 CSV
SplFileObject not reading CSV properly
所以我必须读取多个 CSV 文件,合并它们 headers(通过删除重复项)并将值放入最终(合并的)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
)
为什么它没有为下一行创建另一个数组?
试试这个,将你的数据存储在数组中并打印它。
$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);
所以我必须读取多个 CSV 文件,合并它们 headers(通过删除重复项)并将值放入最终(合并的)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
)
为什么它没有为下一行创建另一个数组?
试试这个,将你的数据存储在数组中并打印它。
$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);