(PECL ds >= 1.0.0)
Ds\Map::slice — Возвращает подмножество коллекции из заданного диапазона
Возвращает подмножество коллекции из диапазона, заданного начальным индексом
index
и длиной length
.
index
Индекс, задающий начало диапазона.
Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.
length
Положительное значение определяет, сколько элементов будет взято. Если количество элементов коллекции меньше заданного значения, вернётся столько элементов, сколько есть. Отрицательное значение установит индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.
Подмножество коллекции из заданного диапазона.
Пример #1 Пример использования Ds\Map::slice()
<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);
// Подмножество после индекса 2
print_r($map->slice(2)->toArray());
// Подмножество, начиная с индекса 1 с длиной 3
print_r($map->slice(1, 3)->toArray());
// Подмножество после индекса 1
print_r($map->slice(1)->toArray());
// Подмножество после индекса 2 с конца
print_r($map->slice(-2)->toArray());
// Подмножество после индекса 1, отсчитывая с конца
print_r($map->slice(1, -1)->toArray());
?>
Вывод приведённого примера будет похож на:
Array ( [c] => 3 [d] => 4 [e] => 5 ) Array ( [b] => 2 [c] => 3 [d] => 4 ) Array ( [b] => 2 [c] => 3 [d] => 4 [e] => 5 ) Array ( [d] => 4 [e] => 5 ) Array ( [b] => 2 [c] => 3 [d] => 4 )