新聞中心
PHP 數(shù)據(jù)結(jié)構(gòu)隊(duì)列(SplQueue)和優(yōu)先隊(duì)列(SplPriorityQueue)簡單使用實(shí)例
隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)更簡單,就像我們生活中排隊(duì)一樣,它的特性是先進(jìn)先出(FIFO)。
成都創(chuàng)新互聯(lián)公司主營孝南網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都APP應(yīng)用開發(fā),孝南h5小程序定制開發(fā)搭建,孝南網(wǎng)站營銷推廣歡迎孝南等地區(qū)企業(yè)咨詢
PHP
SPL中SplQueue類就是實(shí)現(xiàn)隊(duì)列操作,和棧一樣,它也可以繼承雙鏈表(SplDoublyLinkedList)輕松實(shí)現(xiàn)。
SplQueue類摘要如下:
SplQueue簡單使用如下:
復(fù)制代碼
代碼如下:
$queue
=
new
SplQueue();
/**
*
可見隊(duì)列和雙鏈表的區(qū)別就是IteratorMode改變了而已,棧的IteratorMode只能為:
*
(1)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_KEEP
(默認(rèn)值,迭代后數(shù)據(jù)保存)
*
(2)SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE
(迭代后數(shù)據(jù)刪除)
*/
$queue-setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO
|
SplDoublyLinkedList::IT_MODE_DELETE);
//SplQueue::enqueue()其實(shí)就是
SplDoublyLinkedList::push()
$queue-enqueue('a');
$queue-enqueue('b');
$queue-enqueue('c');
//SplQueue::dequeue()其實(shí)就是
SplDoublyLinkedList::shift()
print_r($queue-dequeue());
foreach($queue
as
$item)
{
echo
$item
.
PHP_EOL;
}
print_r($queue);
而優(yōu)先隊(duì)列SplPriorityQueue是基于堆(后文介紹)實(shí)現(xiàn)的。
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
/**
*
設(shè)置元素出隊(duì)模式
*
SplPriorityQueue::EXTR_DATA
僅提取值
*
SplPriorityQueue::EXTR_PRIORITY
僅提取優(yōu)先級
*
SplPriorityQueue::EXTR_BOTH
提取數(shù)組包含值和優(yōu)先級
*/
$pq-setExtractFlags(SplPriorityQueue::EXTR_DATA);
while($pq-valid())
{
print_r($pq-current());
//a
c
b
$pq-next();
}
在php后臺中如何實(shí)現(xiàn)頁面左側(cè)常用的樹狀多級菜單呢?如果可以的說下原理并留下一個實(shí)例吧。謝謝了!
//'name'='標(biāo)題','main_page'='左導(dǎo)航','r_nav'='默認(rèn)主頁'
$group_type_arr=array(
2=array('name'='企業(yè)管理','main_page'='admin_enterprise','r_nav'='admin_enterprise_open'),
4=array('name'='個人用戶管理','main_page'='user_ctrl','r_nav'='admin_user_dat'),
5=array('name'='點(diǎn)評管理','main_page'='comment_ctrl','r_nav'='comment'),
7=array('name'='統(tǒng)計(jì)管理','main_page'='stats_ctrl','r_nav'='admin_product_business_count'),
8=array('name'='群組管理','main_page'='group_ctrl','r_nav'='useradmin'),
);
這是左側(cè)第一級菜單,循環(huán)這個,在它里面可以直接加入二級菜單
如何修改phpcms后臺菜單
1.登錄phpcms后臺首頁,點(diǎn)擊擴(kuò)展-菜單管理(在左側(cè))
2.進(jìn)入菜單管理后,選擇要控制的菜單,點(diǎn)擊修改
3.在這里,還可以修改菜單的從屬關(guān)系,以實(shí)現(xiàn)后臺菜單導(dǎo)航的更換
4.將是否顯示,勾選為顯示,點(diǎn)擊確定,并更新欄目緩存,同樣,修改的話也在這里
5.OK,全新的菜單結(jié)構(gòu)就做好了!
當(dāng)前文章:php后臺菜單數(shù)據(jù)結(jié)構(gòu) php的數(shù)據(jù)結(jié)構(gòu)
本文來源:http://fisionsoft.com.cn/article/ddipsgh.html