mdantas / csv-map
该库的目标是实现Spout之上的方法,用于对CSV文件进行分组、过滤、提取一些信息。
v2.0
2020-07-21 15:32 UTC
Requires
- php: >=7.2
- box/spout: ^3.1@dev
Requires (Dev)
- phpunit/phpunit: ^9.0
README
CSV-Map
该库的目标是使用过滤器方法管理一些CSV文件,它是基于box/soap构建的,更多详细示例请参阅:测试示例。
需求
- >= PHP7.2
- box/spout 3.1.0
安装
composer require mdantas/csv-map
方法
所有方法都可以在CsvMap\Interfaces\CsvCollectionInterface中找到。
getHeaders - 获取CSV文件中的标题数组。
hasHeader - 检查CSV文件中是否存在标题。
groupBy - 根据数组索引分组值,索引基于$row[headerName]。
combine - 通过行索引的值组合数组,并相交某些标题的值。
extract - 提取仅包含值的列,可以有或没有重复值。
isEmpty - 检查集合是否为空。
each - 对每个项目简单可调用函数的快捷方式。
toArray - 生成一个数组,通过标题名称索引行值,例如:[$headername => $rowValue]
示例
use CsvMap\Collection; $fileCsvPath = './filecsv'; $csvCollection = Collection::factory($fileCsvPath); $csvCollection->getHeaders(): array; $csvCollection->hasHeader('headerName'): bool; $csvCollection->combine('id', 'name', 'id', ...): array; $csvCollection->groupBy('id'): array; $csvCollection->extract('id', true): array // Last param remove duplicated registers $csvCollection->isEmpty(): bool; $csvCollection->each(function($item) => { print_r($item); }); $csvCollection->toArray();
测试
composer run tests