Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查SplPriorityQueue中是否存在元素?_Php_Priority Queue_Spl - Fatal编程技术网

Php 如何检查SplPriorityQueue中是否存在元素?

Php 如何检查SplPriorityQueue中是否存在元素?,php,priority-queue,spl,Php,Priority Queue,Spl,我有一个自定义的优先队列 class Application_Model_Astar_PQtest extends SplPriorityQueue { public function compare($priority1, $priority2) { if ($priority1 === $priority2) return 0; return $priority1 > $priority2 ? -1 : 1; } }

我有一个自定义的优先队列

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

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

A
SplPriorityQueue
实现了一个迭代器,因此只需对其进行迭代即可:

$foundIt = false;

foreach($queue as $item){

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

  $foundIt = true;
  break;
}

或者:

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

SplPriorityQueue
实现了一个迭代器,所以只需在其上迭代即可:

$foundIt = false;

foreach($queue as $item){

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

  $foundIt = true;
  break;
}

或者:

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

搜索时,您可能希望
克隆$queue
,否则所有项目将获得
提取()
-ed。搜索时,您可能希望
克隆$queue
,否则所有项目将获得
提取()
-ed。