softboxlab/php-collection-helper

简单的数组和面向对象的集合

v0.0.1 2017-06-15 21:16 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:15:28 UTC


README

Build Status codecov

简单的PHP集合和数组助手

一个简单的集合类,用于在面向对象范式下处理数组,并提供一些数组(集合)助手,以标准化参数(首先数据,然后回调,类似于 javascript)。

集合

在这个定义中,我们的集合是 不可变的,这意味着 每个 操作都应该返回一个新的集合,同时保持原始集合完整。

$collection = new Collection([1, 2, 3, 4]);
$newCollection = $collection->map(function ($item) {
    return $item * 2;
});

print_r($newCollection->all()); // [2, 4, 6, 8]
print_r($collection->all()); // [1, 2, 3, 4]

集合助手

这是对集合类的基本支持。所有方法都在这里实现。

可用方法列表

  • map($data, $callback ($value, $key));
    • 使用提供的回调映射数据中的所有项。回调将接收数组的值和键。
  • filter($data, $callback($value, $key), $keepKeys);
    • 使用提供的回调过滤给定的数组。只有当回调返回 true 时,才会返回过滤数据中的项目。如果将 false 传递给 keepKeys 参数,则键将重置。
  • reduce($data, $callback($value, $key), $initialValue);
    • 使用给定的回调减少给定数据。
  • transform($data, $changes, $delimiter);
    • 使用 $changes 数组转换给定 $data 数组的键(更改)。要遍历数组,请使用 Laravel 的点语法。如果提供了 $delimiter,则更改 Laravel 的点语法分隔符。
  • transformArray($data, $changed, $delimiter);
    • 与 transform 相同,但应在列表上使用,将对每个项目应用。类似于 map 与 transform。

转换器类

简单的数组转换器类,它将所有键转换为新键。类似于 from-to,其中当键匹配时,将使用给定的替换数组中的值替换给定数组的所有键。

示例

$transformer = new Transformer(['namae' => 'nombre']);
$data = ['namae' => 'William'];
$transformedData = $transformer->transform($data);

print_r($transformedData); // ['nombre' => 'William'];

贡献

请随意提交任何你认为必要的 pull request!