如何检查SplPriorityQueue中存在的元素?

时间:2013-05-11 18:53:34

标签: php priority-queue spl

我定制了SplPriorityQueue。

class Application_Model_Astar_PQtest extends SplPriorityQueue 
{ 
    public function compare($priority1, $priority2) 
    { 
        if ($priority1 === $priority2) return 0; 
        return $priority1 > $priority2 ? -1 : 1; 
    } 
} 

如何检查此队列中是否存在元素?

1 个答案:

答案 0 :(得分:4)

SplPriorityQueue实现了一个迭代器,所以只需迭代它:

$foundIt = false;

foreach($queue as $item){

  if($item !== 'element')
    continue;

  $foundIt = true;
  break;
}

可替换地:

$foundIt = in_array('element', iterator_to_array($queue));