SplPriorityQueue::compare
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SplPriorityQueue::compare — Compare priorities in order to place elements correctly in the heap while sifting up
说明
Compare priority1 with priority2.
参数
priority1-
The priority of the first node being compared.
priority2-
The priority of the second node being compared.
返回值
Result of the comparison, positive integer if priority1 is greater than priority2, 0 if they are equal, negative integer otherwise.
注意:
Multiple elements with the same priority will get dequeued in no particular order.
+添加备注
用户贡献的备注 2 notes
Anonymous ¶
15 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--));
}
}
?>备份地址:http://www.lvesu.com/blog/php/splpriorityqueue.compare.php