downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

SplPriorityQueue::__construct> <SplPriorityQueue
Last updated: Fri, 20 May 2011

view this page in

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

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

Descripción

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

Compare priority1 with priority2.

Parámetros

priority1

The priority of the first node being compared.

priority2

The priority of the second node being compared.

Valores devueltos

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

Note:

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



add a note add a note User Contributed Notes SplPriorityQueue::compare
Anonymous 10-Oct-2009 11: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--));
    }
}

?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites