(PECL ds >= 1.0.0)
Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
$index
[, int $length
] )
Возвращает под-коллекцию из диапазона заданного начальным индексом
index
и длиной length
.
index
Индекс, задающий начало диапазона.
Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.
length
Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.
Под-коллекция из заданного диапазона.
Пример #1 Пример использования Ds\Sequence::slice()
<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);
// Slice from 2 onwards
print_r($sequence->slice(2));
// Slice from 1, for a length of 3
print_r($sequence->slice(1, 3));
// Slice from 1 onwards
print_r($sequence->slice(1));
// Slice from 2 from the end onwards
print_r($sequence->slice(-2));
// Slice from 1 to 1 from the end
print_r($sequence->slice(1, -1));
?>
Результатом выполнения данного примера будет что-то подобное:
Ds\Vector Object ( [0] => c [1] => d [2] => e ) Ds\Vector Object ( [0] => b [1] => c [2] => d ) Ds\Vector Object ( [0] => b [1] => c [2] => d [3] => e ) Ds\Vector Object ( [0] => d [1] => e ) Ds\Vector Object ( [0] => b [1] => c [2] => d )