Skip to content
Dmitriy Zayceff edited this page Feb 22, 2017 · 28 revisions
  • class arr (php\lib\arr).
  • package std.
use php\lib\arr;
// или
use std;

Класс для работы с массивами и итераторами в php, состоит только из статических методов, экземпляр класса создать невозможно.


Статичные методы


count()

arr::count(array|Countable|Iterator $collection): int

Метод возвращает количество элементов в массиве или в объекте-итераторе или в объекте, который реализует интерфейс Countable с методом count().

⚠️ Внимание, для итераторов происходит полный перебор всех элементов для подсчета количества, поэтому, для больших списков операция может занять достаточно много времени!

$array = [1, 2, 3, 4, 5];

$count = arr::count($array);


class Cars imlements Countable {
    function count() {
       return 3;
    }
}

$cars = new Cars();
$carCount = arr::count($cars); // carCount будет 3.

has()

arr::has(array|Traversable $collection, mixed $value, bool $strict = false): bool

Метод возвращает true, если в массиве или коллекции $collection есть значение $value. Можно задать строгость проверки через параметр $strict. Если проверка строгая, то кроме значений в массиве также будут сравниваться и типы как в операторе ===.

$array = ['banana', 'apple', 'plum'];

if (arr::has($array, 'banana')) {
    // в массиве есть banana.
}

Метод немного напоминает по своей работе функцию in_array() из классического php.


toArray()

arr::toArray(array|Iterator $collection, bool $withKeys = false): array

Метод конвертирует итератор в массив, если передан массив вместо итератора, то возвратиться массив без ключей. По-умолчанию метод не сохраняет ключи итератора и массива $collection, но можно их сохранять, передав в параметр $withKeys значение true.


Clone this wiki locally