目前,文档中说“注意:具有相同优先级的多个元素将以不确定的顺序出队。”
如果你需要具有相同优先级的元素保持插入顺序,你可以使用类似以下的东西
<?php
class StablePriorityQueue extends SplPriorityQueue {
protected $serial = PHP_INT_MAX;
public function insert($value, $priority) {
parent::insert($value, array($priority, $this->serial--));
}
}
?>