-
Notifications
You must be signed in to change notification settings - Fork 30
arr
-
class
arr(php\lib\arr). -
package
std.
use php\lib\arr;
// или
use std;Класс для работы с массивами и итераторами в php, состоит только из статических методов, экземпляр класса создать невозможно.
-
arr ::count() -
arr ::has() -
arr ::toArray() -
arr ::of() -
arr ::toList() -
arr ::keys() -
arr ::combine() -
arr ::map() -
arr ::flatten() -
arr ::sort() -
arr ::sortByKeys() -
arr ::peak() -
arr ::push() -
arr ::pop() -
arr ::shift() -
arr ::unshift() -
arr ::first() -
arr ::firstKey() -
arr ::reverse()
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.
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.
arr::toArray(array|Iterator $collection, bool $withKeys = false): arrayМетод конвертирует итератор в массив, если передан массив вместо итератора, то возвратиться массив без ключей. По-умолчанию метод не сохраняет ключи итератора и массива $collection, но можно их сохранять, передав в параметр $withKeys значение true.
ℹ️ В классическом php есть похожая функция
iterator_to_array()илиarray_values(), если передать$withKeysкакfalse.
Метод псевдоним к методу toArray(), см. выше.
toList($collection, ...$others): arrayФормирует список из массивов и обычных значений в единый одномерный массив. Чтобы понять, как работает функция, лучше взглянуть на пример:
$list = arr::toList(['x' => 10, 20], 30, ['x' => 50, 60]);
var_dump($list);
// выведет [10, 20, 30, 50, 60]