PHP Doku:: Compare priorities in order to place elements correctly in the heap while sifting up. - splpriorityqueue.compare.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzSonstige GrunderweiterungenStandard PHP Library (SPL)DatenstrukturenThe SplPriorityQueue classSplPriorityQueue::compare

Ein Service von Reinhard Neidl - Webprogrammierung.

The SplPriorityQueue class

<<The SplPriorityQueue class

SplPriorityQueue::__construct>>

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

SplPriorityQueue::compareCompare priorities in order to place elements correctly in the heap while sifting up.

Beschreibung

int SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Compare priority1 with priority2.

Parameter-Liste

priority1

The priority of the first node being compared.

priority2

The priority of the second node being compared.

Rückgabewerte

Result of the comparison, positive integer if priority1 is greater than priority2, 0 if they are equal, negative integer otherwise.

Hinweis:

Multiple elements with the same priority will get dequeued in no particular order.


Ein BenutzerBeitrag:
- Beiträge aktualisieren...
Anonymous
11.10.2009 1:51
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--));
    }
}

?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)