我正在学习如何使用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
我猜是这样的,因为我尝试写入的数组是多维的,但是我不知道该怎么做。