At this time, the documentation sais "Note: Multiple elements with the same priority will get dequeued in no particular order."
If you need elements of equal priority to maintain insertion order, you can use something like:
<?php
class StablePriorityQueue extends SplPriorityQueue {
protected $serial = PHP_INT_MAX;
public function insert($value, $priority) {
parent::insert($value, array($priority, $this->serial--));
}
}
?>SplPriorityQueue::compare
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SplPriorityQueue::compare
Референца за `splpriorityqueue.compare.php` со подобрена типографија и навигација.
SplPriorityQueue::compare
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SplPriorityQueue::compare — Споредете ги приоритетите за правилно поставување елементи во купот при просејување нагоре
= NULL
Спореди priority1 with priority2.
Параметри
priority1-
Приоритетот на првиот јазол што се споредува.
priority2-
Приоритетот на вториот јазол што се споредува.
Вратени вредности
Резултат од споредбата, позитивен цел број ако priority1 е поголемо од priority2, 0 ако се еднакви, негативен цел број инаку.
Забелешка:
Повеќе елементи со ист приоритет ќе бидат извадени од редот без посебен редослед.