SplQueue/SplPriorityQueue
<?php
$queue = new SplQueue();
$queue->setIteratorMode(SplQueue::IT_MODE_DELETE);
$queue->enqueue('1');
$queue->enqueue('2');
$queue->enqueue('3');
$queue->dequeue();
$queue->dequeue();
echo $queue->top();
$queue = new SplPriorityQueue();
$queue->setIteratorMode(SplPriorityQueue::EXTR_DATA);
$queue->insert('Q', '1');
$queue->insert('W', '2');
$queue->insert('E', '3');
$queue->insert('R', '4');
$queue->insert('T', '5');
$queue->insert('Y', '6');
$queue->top();
while($queue->valid()) {
echo $queue->current();
$queue->next();
}