Collections with SPL
Priority Queue
SplPriorityQueue extracts the item with the highest priority first.
Priority Queue
priority_queue.php
<?php
$urgent = ;
$queue = new SplPriorityQueue();
$queue->insert("normal", 3);
$queue->insert("urgent", $urgent);
$picked = $queue->extract();
$left = $queue->count();
echo "urgent=" . $urgent . "\n";
echo "picked=" . $picked . "\n";
echo "left=" . $left . "\n";
<?php
$urgent = ;
$queue = new SplPriorityQueue();
$queue->insert("normal", 3);
$queue->insert("urgent", $urgent);
$picked = $queue->extract();
$left = $queue->count();
echo "urgent=" . $urgent . "\n";
echo "picked=" . $picked . "\n";
echo "left=" . $left . "\n";
<?php
$urgent = ;
$queue = new SplPriorityQueue();
$queue->insert("normal", 3);
$queue->insert("urgent", $urgent);
$picked = $queue->extract();
$left = $queue->count();
echo "urgent=" . $urgent . "\n";
echo "picked=" . $picked . "\n";
echo "left=" . $left . "\n";
priority order
Priority queues use numeric priority instead of insertion order to choose the next item.