/***类队列**参考地址:https://www.jianshu.com/p/ca1bb95ada76*/classQueue{/***队列列表**@vararray*/protected$items=[];/***创建团队元素**@param$element*@param$priority*@returnarray*/publicfunctionqueueElement($element,$priority){return['element'=>$element,'priority'=>$优先级];}/***将数据加入队列**@param$element*@paramnull$priority*@returnarray*/publicfunctionenqueue($element,$priority=NULL){$queueElement=$this->queueElement($元素,$优先级);如果($this->isEmpty()||$priority===NULL){array_push($this->items,$queueElement);}else{$add=false;foreach($this->itemsas$key=>$value){if($priority<$value['priority']){array_splice($this->items,$key,0,[$queueElement]);$添加=真;休息;}}if(!$add){array_push($this->items,$queueElement);}}返回$queueElement;}/***队列消耗**@returnmixed*/publicfunctiondequeue(){returnarray_shift($this->items);}/***队列的第一个元素**@returnmixed*/publicfunctionfront(){return$this->items[0];}/***队列是否为空**@returnbool*/publicfunctionisEmpty(){return!!!计数($this->items);}/***队列项目大小**@returnint*/publicfunctionsize(){returncount($this->items);}}$queue=newQueue();$queue->enqueue("abc",10);$queue->enqueue("def",5);$queue->enqueue("hig",12);$queue->enqueue("ijk",3);$size=$queue->size();对于($i=0;$i<$size;$i++){$item=$queue->dequeue();print_r($item);}
