Можно ли отфильтровать подмножество столбцов CSV с Flysystem CSV?
Я знаю, что вы можете использовать AbstractCsv::addFilter(callable $callback)
добавить произвольные фильтры, но я не думаю, что вы бы использовали это, чтобы удалить столбец.
Я решил это, получив массив позиций столбцов, которые я хотел отфильтровать. Затем путем установки нового объекта CSV для записи, например, в.
$new = Writer::createFromFileObject(new \SplTempFileObject);
С CSV для чтения я использовал each
метод для перебора его строк, построения новой строки с использованием ранее созданных индексов столбцов и вставки в новый CSV. Запомни return true;
в each
метод или он не будет повторяться.
$csv = $csv->newReader();
$csv->setOffset(1);
$csv->each(function ($row) use ($indexes) {
... do stuff to alter the row ...
$new->insertOne($alteredRow)
});
Других решений пока нет …