Skip to content
Dmitriy Zayceff edited this page Feb 27, 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.

ℹ️ Метод работает таким же образом как функция count() и sizeof() из классического php.


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.

ℹ️ В классическом php есть похожая функция iterator_to_array() или array_values(), если передать $withKeys как false.


of()

Метод псевдоним к методу toArray(), см. выше.


toList()

arr::toList($collection, ...$others): array

Формирует список из массивов и обычных значений в единый одномерный массив. Чтобы понять, как работает функция, лучше взглянуть на пример:

$list = arr::toList(['x' => 10, 20], 30, ['x' => 50, 60]);

var_dump($list);
// выведет [10, 20, 30, 50, 60]

keys()

arr::keys(array $array): array

Метод возвращает ключи массива $array, похожая функция array_keys().

$array = ['x' => 20, 'y' => 30];

var_dump(arr::keys($array)); // выведет ['x', 'y']

combine()

arr::combine(array|Iterator $keys, array|Iterator $values): array
``
Формирует один массив из ключей `$keys` и значений `$values`. Метод похож на функцию `array_combine()`, однако умеет работать не только с массивами, но и с итераторами!

```php
$array = arr::combine(['x', 'y'], [20, 30]);

var_dump($array); // [x => 20, y => 30]
Clone this wiki locally