OriginPHP CSV

2.1.0 2021-04-13 12:53 UTC

This package is auto-updated.

Last update: 2024-09-13 20:36:50 UTC


README

license build coverage

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
}