CloudCastle Support API

Arr
in package

FinalYes

Статические утилиты для работы с массивами.

Суперсет массивных помощников illuminate/support и nette/utils: доступ по «точечной» нотации (get/set/has/add/forget/pull), выборки и срезы (only/except/pluck/take/random), проверки (hasAny/exists/isList/ isAssoc), преобразования (flatten/dot/undot/collapse/map/mapWithKeys/ keyBy/prependKeysWith/divide/crossJoin), упорядочивание (sort/sortDesc/ sortRecursive/shuffle), а также first/last/where/whereNotNull/join с предикатами. Ключи «точечной» нотации адресуют вложенные элементы через ..

Table of Contents

Methods

add()  : array<string|int, mixed>
Установить значение по «точечному» ключу, только если его ещё нет.
collapse()  : array<int, mixed>
Схлопнуть массив массивов в один уровень.
crossJoin()  : array<int, array<string|int, mixed>>
Декартово произведение переданных массивов.
divide()  : array{0: list, 1: list}
Разделить массив на список ключей и список значений.
dot()  : array<string, mixed>
Свести многомерный массив к «точечным» ключам.
except()  : array<string|int, mixed>
Исключить указанные ключи.
exists()  : bool
Есть ли ключ на верхнем уровне (без «точечной» нотации).
first()  : mixed
Первый элемент, удовлетворяющий предикату (или просто первый).
flatten()  : array<int, mixed>
Развернуть многомерный массив в плоский список.
forget()  : array<string|int, mixed>
Удалить элемент по «точечному» ключу.
get()  : mixed
Значение из массива по «точечному» ключу.
has()  : bool
Есть ли элемент по «точечному» ключу.
hasAny()  : bool
Есть ли хотя бы один из «точечных» ключей.
isAssoc()  : bool
Является ли массив ассоциативным (не списком).
isList()  : bool
Является ли массив списком (последовательные int-ключи с нуля).
join()  : string
Склеить значения массива с особым разделителем перед последним элементом.
keyBy()  : array<string|int, mixed>
Переиндексировать массив по вычисленному ключу.
last()  : mixed
Последний элемент, удовлетворяющий предикату (или просто последний).
map()  : array<string|int, mixed>
Преобразовать значения с доступом к ключу (ключи сохраняются).
mapWithKeys()  : array<string|int, mixed>
Преобразовать элементы в пары «ключ => значение» и объединить их.
only()  : array<string|int, mixed>
Оставить только указанные ключи.
pluck()  : array<string|int, mixed>
Извлечь столбец значений (опционально с ключами).
prepend()  : array<string|int, mixed>
Добавить элемент в начало массива.
prependKeysWith()  : array<string|int, mixed>
Добавить префикс ко всем ключам верхнего уровня.
pull()  : mixed
Вернуть значение по «точечному» ключу и удалить его из массива.
random()  : mixed
Случайный элемент массива (или список случайных элементов).
set()  : array<string|int, mixed>
Установить значение по «точечному» ключу, создавая вложенные массивы.
shuffle()  : array<int, mixed>
Перемешать значения массива (Fisher–Yates на криптостойком {@see random_int()}).
sort()  : array<int, mixed>
Отсортировать значения по возрастанию (ключи сбрасываются).
sortDesc()  : array<int, mixed>
Отсортировать значения по убыванию (ключи сбрасываются).
sortRecursive()  : array<string|int, mixed>
Рекурсивно отсортировать массив и все вложенные массивы.
take()  : array<string|int, mixed>
Взять первые (или последние при отрицательном `$limit`) элементы.
undot()  : array<string|int, mixed>
Восстановить многомерный массив из «точечных» ключей.
where()  : array<string|int, mixed>
Отфильтровать массив предикатом (сохраняя ключи).
whereNotNull()  : array<string|int, mixed>
Оставить только элементы со значением, отличным от `null` (ключи сохраняются).
wrap()  : array<string|int, mixed>
Обернуть значение в массив (если ещё не массив).

Methods

add()

Установить значение по «точечному» ключу, только если его ещё нет.

public static add(array<string|int, mixed> $array, int|string $key, mixed $value) : array<string|int, mixed>

Существующий ключ (даже со значением null) не перезаписывается.

Parameters
$array : array<string|int, mixed>

исходный массив

$key : int|string

ключ (поддерживает «точечную» нотацию)

$value : mixed

записываемое значение

Return values
array<string|int, mixed>

массив с добавленным (или неизменным) элементом

collapse()

Схлопнуть массив массивов в один уровень.

public static collapse(array<string|int, mixed> $array) : array<int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
array<int, mixed>

объединённые значения вложенных массивов

crossJoin()

Декартово произведение переданных массивов.

public static crossJoin(array<string|int, mixed> ...$arrays) : array<int, array<string|int, mixed>>
Parameters
$arrays : array<string|int, mixed>

массивы-сомножители

Return values
array<int, array<string|int, mixed>>

все сочетания по одному элементу из каждого массива

divide()

Разделить массив на список ключей и список значений.

public static divide(array<string|int, mixed> $array) : array{0: list, 1: list}
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
array{0: list, 1: list}

пара «ключи, значения»

dot()

Свести многомерный массив к «точечным» ключам.

public static dot(array<string|int, mixed> $array[, string $prepend = '' ]) : array<string, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$prepend : string = ''

префикс ключей

Return values
array<string, mixed>

карта «точечный ключ» → значение

except()

Исключить указанные ключи.

public static except(array<string|int, mixed> $array, array<int, int|string> $keys) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$keys : array<int, int|string>

исключаемые ключи

Return values
array<string|int, mixed>

массив без указанных ключей

exists()

Есть ли ключ на верхнем уровне (без «точечной» нотации).

public static exists(array<string|int, mixed> $array, int|string $key) : bool
Parameters
$array : array<string|int, mixed>

исходный массив

$key : int|string

проверяемый ключ верхнего уровня

Return values
bool

true, если ключ существует (в том числе со значением null)

first()

Первый элемент, удовлетворяющий предикату (или просто первый).

public static first(array<string|int, mixed> $array[, callable(mixed, Array): bool|null $callback = null ][, mixed $default = null ]) : mixed
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed, Array): bool|null = null

предикат или null

$default : mixed = null

значение по умолчанию

Return values
mixed

найденный элемент либо $default

flatten()

Развернуть многомерный массив в плоский список.

public static flatten(array<string|int, mixed> $array[, int $depth = PHP_INT_MAX ]) : array<int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$depth : int = PHP_INT_MAX

максимальная глубина разворота

Return values
array<int, mixed>

плоский список значений

forget()

Удалить элемент по «точечному» ключу.

public static forget(array<string|int, mixed> &$array, int|string $key) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив (изменяется по ссылке)

$key : int|string

ключ (поддерживает «точечную» нотацию)

Return values
array<string|int, mixed>

изменённый массив

get()

Значение из массива по «точечному» ключу.

public static get(array<string|int, mixed> $array[, int|string|null $key = null ][, mixed $default = null ]) : mixed
Parameters
$array : array<string|int, mixed>

исходный массив

$key : int|string|null = null

ключ (поддерживает «точечную» нотацию); null — весь массив

$default : mixed = null

значение по умолчанию, если ключ не найден

Return values
mixed

найденное значение либо $default

has()

Есть ли элемент по «точечному» ключу.

public static has(array<string|int, mixed> $array, int|string $key) : bool
Parameters
$array : array<string|int, mixed>

исходный массив

$key : int|string

ключ (поддерживает «точечную» нотацию)

Return values
bool

true, если элемент существует

hasAny()

Есть ли хотя бы один из «точечных» ключей.

public static hasAny(array<string|int, mixed> $array, array<int, int|string> $keys) : bool
Parameters
$array : array<string|int, mixed>

исходный массив

$keys : array<int, int|string>

проверяемые ключи (поддерживают «точечную» нотацию)

Return values
bool

true, если найден хотя бы один ключ

isAssoc()

Является ли массив ассоциативным (не списком).

public static isAssoc(array<string|int, mixed> $array) : bool
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
bool

true, если массив не является списком (пустой массив — false)

isList()

Является ли массив списком (последовательные int-ключи с нуля).

public static isList(array<string|int, mixed> $array) : bool
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
bool

true, если массив — список

join()

Склеить значения массива с особым разделителем перед последним элементом.

public static join(array<string|int, string> $array, string $glue[, string $finalGlue = '' ]) : string
Parameters
$array : array<string|int, string>

список строк для склейки

$glue : string

разделитель между элементами

$finalGlue : string = ''

разделитель перед последним элементом (пустой — как $glue)

Return values
string

склеенная строка

keyBy()

Переиндексировать массив по вычисленному ключу.

public static keyBy(array<string|int, mixed> $array, callable(mixed): Array|string $keyBy) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$keyBy : callable(mixed): Array|string

«точечный» путь в элементе-массиве либо колбэк

Return values
array<string|int, mixed>

массив, переиндексированный по вычисленному ключу

last()

Последний элемент, удовлетворяющий предикату (или просто последний).

public static last(array<string|int, mixed> $array[, callable(mixed, Array): bool|null $callback = null ][, mixed $default = null ]) : mixed
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed, Array): bool|null = null

предикат или null

$default : mixed = null

значение по умолчанию

Return values
mixed

найденный элемент либо $default

map()

Преобразовать значения с доступом к ключу (ключи сохраняются).

public static map(array<string|int, mixed> $array, callable(mixed, Array): mixed $callback) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed, Array): mixed

преобразование ($value, $key)

Return values
array<string|int, mixed>

массив с теми же ключами и преобразованными значениями

mapWithKeys()

Преобразовать элементы в пары «ключ => значение» и объединить их.

public static mapWithKeys(array<string|int, mixed> $array, callable(mixed, Array): array<string|int, mixed> $callback) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed, Array): array<string|int, mixed>

возвращает пару «ключ => значение»

Return values
array<string|int, mixed>

объединённые пары из результатов колбэка

only()

Оставить только указанные ключи.

public static only(array<string|int, mixed> $array, array<int, int|string> $keys) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$keys : array<int, int|string>

сохраняемые ключи

Return values
array<string|int, mixed>

массив только с указанными ключами

pluck()

Извлечь столбец значений (опционально с ключами).

public static pluck(array<string|int, mixed> $array, int|string|null $value[, int|string|null $key = null ]) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив массивов/объектов

$value : int|string|null

ключ значения

$key : int|string|null = null

ключ для ключей результата

Return values
array<string|int, mixed>

список значений либо карта ключ→значение

prepend()

Добавить элемент в начало массива.

public static prepend(array<string|int, mixed> $array, mixed $value[, int|string|null $key = null ]) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$value : mixed

добавляемое значение

$key : int|string|null = null

ключ (null — числовой в начало)

Return values
array<string|int, mixed>

массив с добавленным элементом

prependKeysWith()

Добавить префикс ко всем ключам верхнего уровня.

public static prependKeysWith(array<string|int, mixed> $array, string $prefix) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$prefix : string

добавляемый префикс

Return values
array<string|int, mixed>

массив с префиксом у ключей

pull()

Вернуть значение по «точечному» ключу и удалить его из массива.

public static pull(array<string|int, mixed> &$array, int|string $key[, mixed $default = null ]) : mixed
Parameters
$array : array<string|int, mixed>

исходный массив (изменяется по ссылке)

$key : int|string

ключ (поддерживает «точечную» нотацию)

$default : mixed = null

значение по умолчанию, если ключ не найден

Return values
mixed

извлечённое значение либо $default

random()

Случайный элемент массива (или список случайных элементов).

public static random(array<string|int, mixed> $array[, int|null $number = null ]) : mixed

Использует криптостойкий random_int() без смещения по модулю.

Parameters
$array : array<string|int, mixed>

исходный массив

$number : int|null = null

сколько элементов вернуть; null — один случайный элемент

Tags
throws
InvalidArgumentException

если массив пуст (при null) или $number вне диапазона [0; count]

Return values
mixed

один элемент (при null) либо список из $number элементов

set()

Установить значение по «точечному» ключу, создавая вложенные массивы.

public static set(array<string|int, mixed> &$array, int|string $key, mixed $value) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив (изменяется по ссылке)

$key : int|string

ключ (поддерживает «точечную» нотацию)

$value : mixed

записываемое значение

Return values
array<string|int, mixed>

изменённый массив

shuffle()

Перемешать значения массива (Fisher–Yates на криптостойком {@see random_int()}).

public static shuffle(array<string|int, mixed> $array) : array<int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
array<int, mixed>

список перемешанных значений (ключи сбрасываются)

sort()

Отсортировать значения по возрастанию (ключи сбрасываются).

public static sort(array<string|int, mixed> $array[, callable(mixed): mixed|null $callback = null ]) : array<int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed): mixed|null = null

извлечение значения для сравнения; null — сами значения

Return values
array<int, mixed>

отсортированный список значений

sortDesc()

Отсортировать значения по убыванию (ключи сбрасываются).

public static sortDesc(array<string|int, mixed> $array) : array<int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
array<int, mixed>

отсортированный по убыванию список значений

sortRecursive()

Рекурсивно отсортировать массив и все вложенные массивы.

public static sortRecursive(array<string|int, mixed> $array[, int $options = SORT_REGULAR ][, bool $descending = false ]) : array<string|int, mixed>

Списки сортируются по значениям (естественное сравнение), ассоциативные массивы — по ключам с учётом $options.

Parameters
$array : array<string|int, mixed>

исходный массив

$options : int = SORT_REGULAR

флаги сортировки ключей ассоциативных массивов (SORT_REGULAR, SORT_STRING, …)

$descending : bool = false

сортировать по убыванию

Return values
array<string|int, mixed>

рекурсивно отсортированный массив

take()

Взять первые (или последние при отрицательном `$limit`) элементы.

public static take(array<string|int, mixed> $array, int $limit) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$limit : int

число элементов; отрицательное — столько последних

Return values
array<string|int, mixed>

срез массива

undot()

Восстановить многомерный массив из «точечных» ключей.

public static undot(array<string, mixed> $array) : array<string|int, mixed>
Parameters
$array : array<string, mixed>

карта «точечный ключ» → значение

Return values
array<string|int, mixed>

восстановленный многомерный массив

where()

Отфильтровать массив предикатом (сохраняя ключи).

public static where(array<string|int, mixed> $array, callable(mixed, Array): bool $callback) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

$callback : callable(mixed, Array): bool

предикат

Return values
array<string|int, mixed>

отфильтрованный массив

whereNotNull()

Оставить только элементы со значением, отличным от `null` (ключи сохраняются).

public static whereNotNull(array<string|int, mixed> $array) : array<string|int, mixed>
Parameters
$array : array<string|int, mixed>

исходный массив

Return values
array<string|int, mixed>

массив без null-значений

wrap()

Обернуть значение в массив (если ещё не массив).

public static wrap(mixed $value) : array<string|int, mixed>
Parameters
$value : mixed

значение любого типа

Return values
array<string|int, mixed>

сам массив, [] для null, либо [$value]

On this page

Search results