note 99146 modified in class.splpriorityqueue by salathe

From: Date: Fri, 30 Jul 2010 11:46:50 +0000
Subject: note 99146 modified in class.splpriorityqueue by salathe
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-171222@lists.php.net to get a copy of this message
quick implementation of SPL Priority Queue: <?php class PQtest extends SplPriorityQueue { public function compare($priority1, $priority2) { if ($priority1 === $priority2) return 0; return $priority1 < $priority2 ? -1 : 1; } } $objPQ = new PQtest(); $objPQ->insert('A',3); $objPQ->insert('B',6); $objPQ->insert('C',1); $objPQ->insert('D',2); echo "COUNT->".$objPQ->count()."<BR>"; //mode of extraction $objPQ->setExtractFlags(PQtest::EXTR_BOTH); //Go to TOP $objPQ->top(); while($objPQ->valid()){ print_r($objPQ->current()); echo "<BR>"; $objPQ->next(); } ?> output: COUNT->4 Array ( [data] => B [priority] => 6 ) Array ( [data] => A [priority] => 3 ) Array ( [data] => D [priority] => 2 ) Array ( [data] => C [priority] => 1 ) --was-- quick implementation of SPL Priority Queue: <?php error_reporting(E_ALL); class PQtest extends SplPriorityQueue{ public function compare($priority1, $priority2) { if ($priority1 === $priority2) return 0; return $priority1 < $priority2 ? -1 : 1; } } $objPQ = new SplPriorityQueue(); $objPQ->insert('A',3); $objPQ->insert('B',6); $objPQ->insert('C',1); $objPQ->insert('D',2); echo "COUNT->".$objPQ->count()."<BR>"; //mode of extraction $objPQ->setExtractFlags(0x00000003); //Go to TOP $objPQ->top(); while($objPQ->valid()){ print_r($objPQ->current()); echo "<BR>"; $objPQ->next(); } ?> output: COUNT->4 Array ( [data] => B [priority] => 6 ) Array ( [data] => A [priority] => 3 ) Array ( [data] => D [priority] => 2 ) Array ( [data] => C [priority] => 1 ) http://php.net/manual/en/class.splpriorityqueue.php

« previous php.notes (#171222) next »