Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice Возвращает подмножество коллекции из заданного диапазона

Описание

public Ds\Map::slice ( int $index , int $length = ? ) : Ds\Map

Возвращает подмножество коллекции из диапазона, заданного начальным индексом 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(13)->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
)