将已解析的CSV数据写入另一个CSV

时间:2019-05-09 13:31:36

标签: php

我正在学习如何使用OOP PHP,我只需要读取一个CSV文件,然后将其写入另一个CSV文件即可。我可以阅读,但是写作部分做得不太好。这是CSV文件:

Name,Surname,Address
John, Doe, Street 123
Miagi, Master, Street 456

我的代码: 这是我读取和撤消数据的课程,

<?php

class fileReader
{
    private $filePath;
    private $data = [];

    public function __construct($filePath)
    {
        $this->filePath = $filePath;
    }

    public function readCSV(): array
    {
        $this->data = array_map('str_getcsv', file($this->filePath));

        return $this->data;
    }
}

这是使用readCSV方法返回数组的方式:

Array ( [0] => Array ( [0] => Name [1] => Surname [2] => Address ) [1] => Array ( [0] => John [1] => Doe [2] => Street 123 ) [2] => Array ( [0] => Miagi [1] => Master [2] => Street 456 ) ) 

这是我尝试使用的数据编写类:

<?php

require_once 'fileReader.php';

class fileWriter
{
    public function writeCSV($data, $file): void
    {
        $fileToWriteIn = fopen($file, 'a+');

        $dataToWrite = implode(',', $data);

        fwrite($fileToWriteIn, $dataToWrite . "\n");
    }
}

在这里,我创建这些类的实例:

<?php

require_once 'fileReader.php';
require_once 'fileWriter.php';

$readData = new fileReader('csvFiles/samplefile1.csv');
$writeData = new fileWriter();
$writeData->writeCSV($readData->readCSV(), 'csvFiles/newFile.csv');

预期结果是将数据简单地写入newFile.csv中,但是出现此错误:

注意:第11行的C:\ xampp \ htdocs \ csvparser \ fileWriter.php中的数组到字符串的转换

它唯一写入文件的是:Array,Array,Array

我猜是这样的,因为我尝试写入的数组是多维的,但是我不知道该怎么做。

0 个答案:

没有答案