lotos/collection

2.0.0 2022-03-04 10:07 UTC

This package is auto-updated.

Last update: 2024-09-05 14:16:23 UTC


README

安装

composer require lotos/collection

使用示例

创建集合

$collection = new Collection;
$collection->push($item); //mixed $item
$collection = new Collection($item); //mixed $item

警告

如果从集合继承,并且继承者有自动填充方法。在任何情况下都不要在构造函数中调用此方法。这个限制是因为在调用where等过滤方法时,集合会重新创建,因此过滤后创建的新集合会自动填充数据。

大多数类的文档可以在以下页面阅读:https://php.ac.cn/manual/ru/class.ds-sequence.php https://php.ac.cn/manual/ru/class.ds-collection.php

集合的额外方法

/**
 * возвращает чистую коллекцию
 **/
$collection->newInstance()

/**
 * возвращает ArrayIterator коллекции
 **/
$collection->getIterator() : ArrayIterator

/**
 * возвращает количество элементов коллекции 
 **/
$collection->count() : int

/**
 * возвращает коллекцию в json-виде
 **/
$collection->jsonSerialize() : string

/**
 * первым параметром всегда передается название свойства (ключа), по которому будет производиться поиск.
 * вторым аргументом можно передавать знаки >, <, =, >=, <=, <>, !=
 * или (внезапное нарушение стандартов, просто так исторически сложилось)
 * можно передать сразу значение, по которому будет производиться фильтрация
 * если вторым аргументом передан знак, то третьим передаете значение
 * */
$collection->where(...$params) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с двумя числовыми значениями,
 * вернутся все элементы, у которых значение выбранного свойства между значениями элементов массива
 **/
$collection->whereBetween(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с возможными значениями, 
 * вернутся все элементы, у которых значение выбранного свойства совпадает со значениями элементов массива
 **/
$collection->whereIn(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем массив с возможными значениями, 
 * вернутся все элементы, у которых значение выбранного свойства не совпадает со значениями элементов массива
 **/
$collection->whereNotIn(string $property, array $values) : Collection

/**
 * первым аргументом передаем свойство
 * вторым аргументом передаем строка с возможным значением, 
 * вернутся все элементы, у которых значение выбранного свойства содержит искомое слово
 **/
$collection->whereContain(string $param, string $value) : Collection

/**
 * передаем свойство, по которому нужно провести проверку
 * вернутся все элементы коллекции,
 * у которых это свойство === NULL
 **/
$collection->whereNull(string $property) : Collection

/**
 * передаем свойство, по которому нужно провести проверку
 * вернутся все элементы коллекции,
 * у которых это свойство !== NULL
 **/
$collection->whereNotNull(string $property) : Collection