fyre/collection

一个集合库。

v1.0 2024-09-24 12:13 UTC

This package is auto-updated.

Last update: 2024-09-24 12:20:08 UTC


README

FyreCollection 是一个免费的、开源的 PHP 集合库。

目录

安装

使用 Composer

composer require fyre/collection

在 PHP 中

use Fyre\Collection\Collection;

创建集合

  • $source 可以是一个数组,一个返回 GeneratorClosure,或者一个 TraversableJsonSerializable 对象。
$collection = new Collection($source);

空集合

创建一个空集合。

$collection = Collection::empty();

范围

创建一个数字范围的集合。

  • $from 是表示范围开始的整数。
  • $to 是表示范围结束的整数。
$collection = Collection::range($from, $to);

集合迭代

CollectionIterator 的实现,可以在 foreach 循环中使用。

foreach ($collection AS $key => $value) { }

集合方法

Avg

获取键的平均值。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
$avg = $collection->avg($valuePath);

缓存

通过新的集合缓存计算值。

$cache = $collection->cache();

将集合拆分为块。

  • $size 是表示每个块大小的数字。
  • $preserveKey 是一个布尔值,指示是否保留键,默认为 false
$chunk = $collection->chunk($size, $preserveKeys);

收集

将计算值收集到新的集合中。

$collect = $collection->collect();

组合

使用给定的值按给定键重新索引集合中的项目。

  • $keyPath 是表示新键路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回新键。
  • $valuePath 是表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值。
$combine = $collection->combine($keyPath, $valuePath);

计数

计算集合中所有项的数量。

$count = $collection->count();

按计数

根据给定的键对集合中的项进行分组,并计算每个组中的项目数量。

  • $keyPath 是表示分组键路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回分组键。
$countBy = $collection->countBy($keyPath);

使用“点”表示法展开多维集合。

$dot = $collection->dot();

每个

对集合中的每个项目执行回调。

  • $callback 是接收项目键作为参数的 Closure
$collection->each($callback);

每个

确定集合中的每个项目是否通过回调。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$every = $collection->every($callback);

除了

返回不包含指定键的集合。

  • $keys 是包含要删除的键的数组。
$except = $collection->except($callback);

提取

使用“点”表示法从集合中提取值。

  • $valuePath 是表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值。
$extract = $collection->extract($valuePath);

过滤器

使用回调函数过滤集合中的项。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$filter = $collection->filter($callback);

找到

找到集合中通过回调的第一个值。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$find = $collection->find($callback);

找到最后一个

找到集合中通过回调的最后一个值。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$findLast = $collection->findLast($callback);

第一个

获取集合中的第一个值。

$first = $collection->first();

扁平化

将多维集合扁平化到单级。

  • $maxDepth 是表示最大扁平化深度的数字,默认为 PHP_INT_MAX
$flatten = $collection->flattened($maxDepth);

翻转

交换集合中的键和值。

$flip = $collection->flip();

按组分组

按给定的键对集合中的项进行分组。

  • $keyPath 是表示新键路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回新键。
$groupBy = $collection->groupBy($keyPath);

包含

检查给定的值是否存在于集合中。

  • $value是要测试的值。
$includes = $collection->includes($value);

按索引分组

按给定的键重新索引集合中的项。

  • $keyPath 是表示新键路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回新键。
$indexBy = $collection->indexBy($keyPath);

索引位置

在集合中搜索给定的值并返回第一个键。

  • $value是要测试的值。
$indexOf = $collection->indexOf($value);

是否为空

确定集合是否为空。

$isEmpty = $collection->isEmpty();

连接

使用指定的分隔符连接集合中的项。

  • $glue是一个表示要连接的分隔符的字符串。
  • $finalGlue是一个表示最终连接分隔符的字符串,默认为null
$join = $collection->join($glue, $finalGlue);

获取集合中的键。

$keys = $collection->keys();

最后一个

获取集合中的最后一个值。

$last = $collection->last();

最后一个索引位置

在集合中搜索给定的值并返回最后一个键。

  • $value是要测试的值。
$lastIndexOf = $collection->lastIndexOf($value);

嵌套列表

将嵌套项扁平化为列表。

  • $order是一个表示顺序的字符串,默认为"desc"
  • $nestingKey是一个表示嵌套键的字符串,默认为"children"
$listNested = $collection->listNested($order, $nestingKey);

映射

将回调函数应用于集合中的项。

  • $callback是一个接收项和键作为参数的Closure,并应返回新值。
$map = $collection->map($callback);

最大值

获取键的最大值。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
$max = $collection->max($valuePath);

中值

获取键的中值。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
$median = $collection->median($valuePath);

合并

将一个或多个可迭代对象合并到集合中。

提供的所有参数必须是数组或Iterator,并将与集合合并。

$merge = $collection->merge(...$iterables);

最小值

获取键的最小值。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
$min = $collection->min($valuePath);

嵌套

在父项内部嵌套子项。

  • $idPath是一个表示ID路径的字符串或数组,或是一个接收项和键作为参数的Closure,应返回ID,默认为"id"
  • $parentPath是一个表示父ID路径的字符串或数组,或是一个接收项和键作为参数的Closure,应返回父ID,默认为"id"
  • $nestingKey是一个表示嵌套键的字符串,默认为"children"
$nest = $collection->nest($idPath, $parentPath, $nestingKey);

空值

确定集合中没有项通过回调函数。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$none = $collection->none($callback);

返回只包含指定键的集合。

  • $keys是一个包含要包含的键的数组。
$only = $collection->only($callback);

打印嵌套

根据深度格式化嵌套列表项。

  • $valuePath是一个表示值路径的字符串或数组,或是一个接收项和键作为参数的Closure,应返回值,默认为"id"
  • $idPath是一个表示ID路径的字符串或数组,或是一个接收项和键作为参数的Closure,应返回ID,默认为"id"
  • $nestingKey是一个表示嵌套键的字符串,默认为"children"
$printNested = $collection->printNested($valuePath, $idPath, $prefix, $nestingKey);

随机值

从集合中拉取一个随机项。

$randomValue = $collection->randomValue();

减少

使用回调函数迭代地将集合减少到单个值。

  • $callback是一个接收累计值、项和键作为参数的Closure,并应返回下一个值。
  • $initial是初始值,默认为null
$reduce = $collection->reduce($callback, $initial);

拒绝

使用回调函数排除集合中的项。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$reject = $collection->reject($callback);

反转

反转集合中项的顺序。

$reverse = $collection->reverse();

洗牌

随机化集合中项的顺序。

$shuffle = $collection->shuffle();

跳过

跳过集合中的若干项。

  • $length是一个表示要跳过的项数的数字。
$skip = $collection->skip($length);

跳过直到

跳过集合中的项,直到回调返回true

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$skipUntil = $collection->skipUntil($callback);

跳过当

跳过集合中的项,直到回调返回false

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$skipWhile = $collection->skipWhile($callback);

某些

确定集合中是否有一些项通过回调函数。

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$some = $collection->some($callback);

排序

使用回调函数对集合进行排序。

  • $callback 是一个 闭包,它接收两个用于比较的项目,并应返回一个整数以确定排序顺序。
$sort = $collection->sort($callback);

或者,您可以按升序排序集合项。

  • $sort 是一个表示排序标志的数字,默认为 Collection::SORT_NATURAL
$sort = $collection->sort($sort);

排序方式

根据给定键对集合进行排序。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
  • $sort 是一个表示排序标志的数字,默认为 Collection::SORT_NATURAL
  • $descending 是一个布尔值,表示是否按降序排序,默认为 false
$sortBy = $collection->sortBy($valuePath, $sort, $descending);

总和

获取键的总和。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
$sumOf = $collection->sumOf($valuePath);

取集合中的若干项。

  • $length是一个表示要跳过的项数的数字。
$take = $collection->take($length);

取直到

取集合中的项,直到回调返回 true

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$takeUntil = $collection->takeUntil($callback);

取直到

取集合中的项,直到回调返回 false

  • $callback 是接收项目键作为参数的 Closure,应该返回一个布尔值。
$takeWhile = $collection->takeWhile($callback);

转换为数组

获取集合中的项作为数组。

$array = $collection->toArray();

转换为 JSON

$json = $collection->toJson();

转换为列表

获取集合中的值作为数组。

$list = $collection->toList();

唯一

根据给定键获取集合中的唯一项。

  • $valuePath 是一个表示值路径的字符串或数组,或者是一个接收项目键作为参数的 Closure,应该返回值,默认为 null
  • $strict 是一个布尔值,表示是否执行严格相等性检查,默认为 false
$unique = $collection->unique($valuePath, $strict);

获取集合中的值。

$values = $collection->values();

连接

将一个或多个可迭代对象与集合连接。

所有提供的参数必须是数组或 迭代器,并将与集合连接。

$zip = $collection->zip(...$iterables);