主要是为了复习一下常见的数组函数,写一个简单的双端队列:
class DoubleQueue
{
private $queue = array();
public function lpush($data)
{
array_unshift($this->queue, $data);//array_unshift向数组头部插入一个或多个数据
}
public function lpop()
{
$val = NULL;
if(!empty($this->queue)) {
$val = array_shift($this->queue);//array_shift从数组头部弹出一个数据
}
return $val;
}
public function rpush($data)
{
array_push($this->queue, $data);//向数组尾部插入一个或多个数据
}
public function rpop()
{
$val = NULL;
if(!empty($this->queue)) {
$val = array_pop($this->queue);//从数组尾部弹出一个数据
}
return $val;
}
public function walk()
{
$arr = array_reverse($this->queue);//array_reverse数组逆序
array_walk($arr, function ($val){//遍历数组中每个元素
echo "$val\n";
});
}
}