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, 14 Aug 2009

view this page in

SplPriorityQueue::compare

(PHP 5 >= 5.3.0)

SplPriorityQueue::compareCompare deux priorités

Description

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

Compare la valeur priority1 avec la valeur priority2 .

Liste de paramètres

priority1

La priorité du premier noeud à comparer.

priority2

La priorité du second noeud à comparer.

Valeurs de retour

Le résultat de la comparaison ; un entier positif si la valeur priority1 est plus grande que la valeur priority2 , 0 si les valeurs sont égales, et un entier négatif sinon.

Note: Avoir plusieurs éléments avec la même priorité fera qu'ils n'auront pas d'ordre particulier.



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

?>

SplPriorityQueue::__construct> <SplPriorityQueue
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites