队列这种数据结构更简单,就像我们生活中排队一样,它的特性是先进先出(FIFO)。
成都创新互联公司主营孝南网站建设的网络公司,主营网站建设方案,成都APP应用开发,孝南h5小程序定制开发搭建,孝南网站营销推广欢迎孝南等地区企业咨询
PHP
SPL中SplQueue类就是实现队列操作,和栈一样,它也可以继承双链表(SplDoublyLinkedList)轻松实现。
SplQueue类摘要如下:
SplQueue简单使用如下:
复制代码
代码如下:
$queue
=
new
SplQueue();
/**
*
可见队列和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:
*
(1)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_KEEP
(默认值,迭代后数据保存)
*
(2)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE
(迭代后数据删除)
*/
$queue-setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE);
//SplQueue::enqueue()其实就是
SplDoublyLinkedList::push()
$queue-enqueue('a');
$queue-enqueue('b');
$queue-enqueue('c');
//SplQueue::dequeue()其实就是
SplDoublyLinkedList::shift()
print_r($queue-dequeue());
foreach($queue
as
$item)
{
echo
$item
.
PHP_EOL;
}
print_r($queue);
而优先队列SplPriorityQueue是基于堆(后文介绍)实现的。
SplPriorityQueue的类摘要如下:
SplPriorityQueue简单使用:
$pq
=
new
SplPriorityQueue();
$pq-insert('a',
10);
$pq-insert('b',
1);
$pq-insert('c',
8);
echo
$pq-count()
.PHP_EOL;
//3
echo
$pq-current()
.
PHP_EOL;
//a
/**
*
设置元素出队模式
*
SplPriorityQueue::EXTR_DATA
仅提取值
*
SplPriorityQueue::EXTR_PRIORITY
仅提取优先级
*
SplPriorityQueue::EXTR_BOTH
提取数组包含值和优先级
*/
$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);
while($pq-valid())
{
print_r($pq-current());
//a
c
b
$pq-next();
}
//'name'='标题','main_page'='左导航','r_nav'='默认主页'
$group_type_arr=array(
2=array('name'='企业管理','main_page'='admin_enterprise','r_nav'='admin_enterprise_open'),
4=array('name'='个人用户管理','main_page'='user_ctrl','r_nav'='admin_user_dat'),
5=array('name'='点评管理','main_page'='comment_ctrl','r_nav'='comment'),
7=array('name'='统计管理','main_page'='stats_ctrl','r_nav'='admin_product_business_count'),
8=array('name'='群组管理','main_page'='group_ctrl','r_nav'='useradmin'),
);
这是左侧第一级菜单,循环这个,在它里面可以直接加入二级菜单
1.登录phpcms后台首页,点击扩展-菜单管理(在左侧)
2.进入菜单管理后,选择要控制的菜单,点击修改
3.在这里,还可以修改菜单的从属关系,以实现后台菜单导航的更换
4.将是否显示,勾选为显示,点击确定,并更新栏目缓存,同样,修改的话也在这里
5.OK,全新的菜单结构就做好了!