PHP 5.4.33 Released

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

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

Beschreibung

public 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.

add a note add a note

User Contributed Notes 1 note

up
1
Anonymous
4 years ago
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--));
    }
}

?>
To Top