originphp / csv
OriginPHP CSV
2.1.0
2021-04-13 12:53 UTC
Requires
- php: >=7.3.0
- originphp/defer: ^3.0
Requires (Dev)
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^9.2
This package is auto-updated.
Last update: 2024-09-13 20:36:50 UTC
README
CSV 工具使得处理 CSV 文件变得简单。
安装
要安装此包
$ composer require originphp/csv
从数组创建 CSV
要使用数组创建 CSV 数据
use Origin\Csv\Csv; $csv = Csv::fromArray([ ['jim','jim@example.com'], ['tony','tony@example.com'] ]);
这将给出以下结果
jim,jim@example.com
tony,tony@example.com
您还可以使用数组中的键作为标题
use Origin\Csv\Csv; $csv = Csv::fromArray([ ['name'=>'jim','email'=>'jim@example.com'], ['name'=>'tony','email'=>'tony@example.com'] ],['header'=>true]);
这将返回以下结果
name,email
jim,jim@example.com
tony,tony@example.com
如果您想使用自定义标题
use Origin\Csv\Csv; $csv = Csv::fromArray([ ['name'=>'jim','email'=>'jim@example.com'], ['name'=>'tony','email'=>'tony@example.com'] ],['header'=>['First Name','Email Address']]);
这将给出以下结果
"First Name","Email Address"
jim,jim@example.com
tony,tony@example.com
从 CSV 数据创建数组
使用 toArray
方法通过 CSV 数据创建数组。
use Origin\Csv\Csv; $csv = file_get_contents('/path/file.csv'); $data = Csv::toArray($csv);
如果 CSV 文件有一个标题行,那么您可以通过传递一个选项数组,并将键 header 设置为 true 来跳过它。
$data = Csv::toArray($csv,['header'=>true]);
如果您想将标题用作数组中每条记录的键,这将使用第一行作为数组的键。
$data = Csv::toArray($csv,['header'=>true,'keys'=>true]);
如果您想为数组中每条记录设置自定义键
$data = Csv::toArray($csv,['keys'=>['First Name','Email Address']]);
处理大文件
为了以内存高效的方式处理大型 CSV 文件,请使用与 toArray
相同选项的 process
方法。这里的区别在于,它将逐行读取 CSV 文件,返回其以供处理,然后继续读取下一行。
$rows = Csv::process('/path/to/file.csv',['keys'=>['First Name','Email Address']]); foreach($rows as $row){ ... do something }