jjware / collections
此包已被废弃,不再维护。未建议替代包。
PHP中操作集合的库
1.1.0
2016-10-06 17:00 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2023-06-28 15:46:39 UTC
README
PHP集合类型库
入门
composer require jjware/collections
使用
集合可以从现有的数组或没有任何参数的情况下实例化。使用集合的一个简单例子是
use Collections\Collection; $collection = new Collection([1, 2, 3, 4, 5]); $firstOverThree = $collection->where(function ($item) { return $item > 3; })->firstOrDefault(null); // $firstOverThree === 4
集合实现了IteratorAggregate
、ArrayAccess
、Countable
、Serializable
和JsonSerializable
接口。
还有一些专门用于队列等功能的集合类
use Collections\Queue; $queue = new Queue([1, 2, 3, 4, 5]); $next = $queue->dequeue(); // $next === 1
或者用于堆栈
use Collections\Stack; $stack = new Stack([1, 2, 3, 4, 5]); $next = $stack->pop(); // $next === 5
可以使用Collections\EnumerableExtensions
特性在任意的Traversable
上添加大量类似集合的功能。
EnumerableExtensions::all(callable $predicate): Enumerable EnumerableExtensions::any(callable $predicate): Enumerable EnumerableExtensions::contains(mixed $object): bool EnumerableExtensions::count(): int EnumerableExtensions::countWhere(callable $predicate): int EnumerableExtensions::distinct(): Enumerable EnumerableExtensions::distinctWhere(EqualityComparerInterface $comparer): Enumerable EnumerableExtensions::each(callable $callback): void EnumerableExtensions::elementAt(int $index): mixed EnumerableExtensions::elementAtOrDefault(int $index, mixed $default): mixed EnumerableExtensions::except(array $ignore): Enumerable EnumerableExtensions::exceptWhere(array $ignore, EqualityComparerInterface $comparer): Enumerable EnumerableExtensions::first(): mixed EnumerableExtensions::firstOrDefault(mixed $default): mixed EnumerableExtensions::last(): mixed EnumerableExtensions::lastOrDefault(mixed $default): mixed EnumerableExtensions::ofType(string $type): mixed EnumerableExtensions::skip(int $number): Enumerable EnumerableExtensions::toArray(): array EnumerableExtensions::where(callable $predicate): Enumerable
未来将提供完整文档...