В SPL у PHP 5.3 появился новый функционал - новые структуры данных: heap, stack, queue и linked list. На сайте alberton.info появилась первая документация к этим структурам.
Вот пример использования структуры SplStack:
$stack = new SplStack(); $stack->push('b'); $stack->push('a'); $stack->push('c'); echo $stack->pop()."\n"; echo $stack->pop()."\n"; echo $stack->pop()."\n"; // ВЫВОДИТ: // c // a // b
Более сложные конструкции данных позволяет выстраивать компонент Queue (очередь). К примеру, формирование структуры, отсортированной по приоритету:
$pqueue = new SplPriorityQueue(); $pqueue->setExtractFlags(SplPriorityQueue::EXTR_DATA); $pqueue->insert('низ', 1); $pqueue->insert('верх', 3); $pqueue->insert('середина', 2); echo 'Верхний элемент: '.$pqueue->top()."\n"; echo $pqueue->extract()."\n"; echo $pqueue->extract()."\n"; echo $pqueue->extract()."\n"; // ВЫВОД: // Верхний элемент: верх // верх // середина // низ