Двухсторонняя очередь
PHP Manual

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotateПерематывает коллекцию на заданное число значений

Описание

public void Ds\Deque::rotate ( int $rotations )

Перематывает коллекцию на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $deque->push($deque->shift()), если число оборотов положительно и $deque->unshift($deque->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменена текущая коллекция.

Примеры

Пример #1 Пример использования Ds\Deque::rotate()

<?php
$deque 
= new \Ds\Deque(["a""b""c""d"]);

$deque->rotate(1);  // Аналогично $a = $sequence->deque(); $deque->push($a);
print_r($deque);

$deque->rotate(2);
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)

Двухсторонняя очередь
PHP Manual