g105b/phpcsv

使用更人性化的方式包装 SplFileObject 的 CSV 功能

v1.0.3 2016-06-03 22:14 UTC

README

使用更人性化的方式包装 SplFileObject 的 CSV 功能

Build status Composer Version Download Stats

快速功能概述

  • 增强 PHP 的 SplFileObject,一个内存高效的文件流。
  • 通过字段值简单过滤行 (getAllBy("fieldName", "fieldValue"))。
  • 结果是关联数组,索引是 CSV 标题名称。
  • 按行迭代 CSV 文件。
  • 通过行号引用 CSV 行。
  • 通过 ID 值引用 CSV 行。

操作截图

Screenshot of phpcsv

使用说明

以下是一些使用案例,以最佳展示库的功能。对于完整指南,请访问文档

添加行

$csv = new Csv("/path/to/file.csv");
$csv->add([
    "firstName" => "Alan",
    "lastName" => "Statham",
    "Job Title" => "Consultant Radiologist",
]);
$csv->add([
    "firstName" => "Caroline",
    "lastName" => "Todd",
    "Job Title" => "Surgical Registrar",
]);

获取行

$csv = new Csv("/path/to/file.csv");
$resultRows = $csv->getAllBy("gender", "F"); // array of all matching rows.
$firstRow = $csv->getBy("gender", "F"); // single row, first matching.

按行迭代

$csv = new Csv("/path/to/file.csv");

foreach ($csv as $rowNumber => $row) {
    // $row is an associative array with CSV headers as each key.
    // $rowNumber starts from 1 (ignoring header row).
}

更新行

$csv = new Csv("/path/to/file.csv");
$row = $csv->getBy("email", "barack@whitehouse.gov");

// Update the matching row with provided fields, keeping any
// existing field data on the existing row.
$csv->update($row, [
    "dateOfBirth" => "1961-08-04",
]);

删除行

$csv = new Csv("/path/to/file.csv");

// Delete a row by its index.
$csv->deleteRow(22);

未来功能想法

  • 结果中仅请求某些字段(v2)
  • 类型处理(v3)
  • 排序(v4)
  • 更快检索索引行(v4)