Очередь и стэк

Стэк LIFO

  • int array_push ( array &$array , mixed $var [, mixed $… ] ) - использует array как стек, и добавляет переданные значения в конец массива array. Длина array увеличивается на количество переданных значений. Возвращает новое количество элементов в массиве. Имеет тот же эффект, что и выражение:
<?php
$array[] = $var;
?>
  • mixed array_pop ( array &$array ) - Извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент. Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром. Возвращает последний элемент массива array. Если array пуст (или не является массивом), будет возвращен NULL.
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);

/*
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)
*/
?>

Очередь FIFO

  • int array_unshift ( array &$array , mixed $value1 [, mixed $... ] ) - Добавляет переданные в качестве аргументов элементы в начало массива array. Обратите внимание, что список элементов добавляется целиком, то есть порядок элементов сохраняется. Все числовые ключи будут изменены таким образом, что нумерация массива будет начинаться с нуля, в то время как строковые ключи останутся прежними. Возвращает новое количество элементов в array.
<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

?>
  • mixed array_shift ( array &$array ) - Извлекает первое значение массива array и возвращает его, сокращая размер array на один элемент. Все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними. Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром. Возвращает извлекаемое значение, или NULL, если array пуст или не является массивом.
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);

/*
Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)
*/
?>