Очередь и стэк
Стэк 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);
?>
Очередь 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);
?>