亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

php通過前序遍歷樹實現無需遞歸的無限極分類

2020-03-22 18:25:42
字體:
來源:轉載
供稿:網友
本文實例講述了php通過前序遍歷樹實現無需遞歸的無限極分類。分享給大家供大家參考。具體如下:大家通常都是使用遞歸實現無限極分類都知道遞歸效率很低,下面介紹一種改進的前序遍歷樹算法,不適用遞歸實現無限極分類,在大數據量實現樹狀層級結構的時候效率更高。sql代碼如下:CREATE TABLE IF NOT EXISTS `category` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lft` int(11) NOT NULL, `rgt` int(11) NOT NULL, `order` int(11) NOT NULL COMMENT '排序', `create_time` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;-- 轉存表中的數據 `category`INSERT INTO `category` (`id`, `title`, `lft`, `rgt`, `order`, `create_time`) VALUES(1, '頂級欄目', 1, 20, 1, 1261964806),(2, '編輯后的分類', 16, 19, 50, 1264586212),(4, '公司產品', 10, 15, 50, 1264586249),(5, '榮譽資質', 8, 9, 50, 1264586270),(6, '資料下載', 6, 7, 50, 1264586295),(7, '人才招聘', 4, 5, 50, 1264586314),(8, '留言板', 2, 3, 50, 1264586884),(9, '總裁', 17, 18, 50, 1267771951),(10, '新的分類的子分類', 11, 14, 0, 1400044841),(11, 'PHP點點通-http://www.phpddt.com', 12, 13, 0, 1400044901);php代碼如下: * 純屬測試 * @author Mckee * @link http://www.phpddt.comhtml' target='_blank'>class Category extends CI_Controller { public function __construct() parent::__construct(); $this- load- database(); public function view() $lists = $this- db- order_by('lft', 'asc')- get('category')- result_array(); //相鄰的兩條記錄的右值第一條的右值比第二條的大那么就是他的父類 //我們用一個數組來存儲上一條記錄的右值,再把它和本條記錄的右值比較,如果前者比后者小,說明不是父子關系,就用array_pop彈出數組,否則就保留 //兩個循環而已,沒有遞歸 $parent = array(); $arr_list = array(); foreach($lists as $item){ if(count($parent)){ while (count($parent) -1 0 && $parent[count($parent) -1]['rgt'] $item['rgt']){ array_pop($parent); $item['depath'] = count($parent); $parent[] = $item; $arr_list[]= $item; //顯示樹狀結構 foreach($arr_list as $a) echo str_repeat('--', $a['depath']) . $a['title'] . ' br / * 插入操作很簡單找到其父節點,之后把左值和右值大于父節點左值的節點的左右值加上2,之后再插入本節點,左右值分別為父節點左值加一和加二 public function add() //獲取到父級分類的id $parent_id = 10; $parent_category = $this- db- where('id', $parent_id)- get('category')- row_array(); //1.左值和右值大于父節點左值的節點的左右值加上2 $this- db- set('lft', 'lft + 2', FALSE)- where(array('lft ' = $parent_category['lft']))- update('category'); $this- db- set('rgt', 'rgt + 2', FALSE)- where(array('rgt ' = $parent_category['lft']))- update('category'); //2.插入新的節點 $this- db- insert('category', array( 'title' = '新的分類的子分類', 'lft' = $parent_category['lft'] + 1, 'rgt' = $parent_category['lft'] + 2, 'order' = 0, 'create_time' = time() echo 'add success'; * 刪除 * //1.得到刪除的節點,將右值減去左值然后加1,得到值$width = $rgt - $lft + 1; * //2.刪除左右值之間的所有節點 * //3.修改條件為大于本節點右值的所有節點,操作為把他們的左右值都減去$width public function delete() //通過分類id獲取分類 $id = 3; $category = $this- db- where('id', $id)- get('category')- row_array(); //計算$width $width = $category['rgt'] - $category['lft'] + 1; //1.刪除該條分類 $this- db- delete('category', array('id' = $id)); //2.刪除左右值之間的所有分類 $this- db- delete('category', array('lft ' = $category['lft'], 'lft ' = $category['rgt'])); //3.修改其它節點的值 $this- db- set('lft', "lft - {$width}", FALSE)- where(array('lft ' = $category['rgt']))- update('category'); $this- db- set('rgt', "rgt - {$width}", FALSE)- where(array('rgt ' = $category['rgt']))- update('category'); echo 'delete success'; //編輯, public function edit() //不用說了, 直接通過id編輯 $id = 2; $this- db- update('category', array( 'title' = '編輯后的分類' ), array( 'id' = $id echo 'edit success';希望本文所述對大家的php程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
2021国产精品视频| 深夜福利日韩在线看| 国产网站欧美日韩免费精品在线观看| 国产精品一区二区3区| 欧美一区二粉嫩精品国产一线天| 精品福利在线视频| 色噜噜亚洲精品中文字幕| 亚洲美女在线视频| 国产欧美久久久久久| 久久免费少妇高潮久久精品99| 成人精品久久一区二区三区| 福利微拍一区二区| 国产精品视频免费观看www| 91视频国产精品| 91视频免费在线| 久久久精品免费视频| 亚洲人成五月天| 亚洲国产成人在线播放| 尤物九九久久国产精品的分类| 亚洲成人精品久久久| 国产丝袜精品第一页| 欧美高清在线视频观看不卡| 久久久久久久久久久成人| 久久国产精品视频| 日产日韩在线亚洲欧美| 欧美性xxxx在线播放| 国产精品wwww| 国产欧美在线看| 亚洲一区二区久久久| 精品日韩中文字幕| 亚洲free性xxxx护士白浆| 久久久国产视频| 疯狂做受xxxx欧美肥白少妇| 日韩视频一区在线| 国产一区二区三区在线观看视频| 亚洲成色777777在线观看影院| 精品日韩视频在线观看| 日韩在线免费视频观看| 性色av一区二区三区在线观看| 国产成人av在线播放| 91av在线播放视频| 538国产精品一区二区在线| 国产999精品久久久影片官网| 中文字幕九色91在线| 亚洲欧美成人网| 亚洲精品一区二区在线| 这里精品视频免费| 668精品在线视频| 91精品国产91久久久久久最新| 色婷婷亚洲mv天堂mv在影片| 韩国三级电影久久久久久| 国产一区二区三区在线看| 国产成人91久久精品| 亚洲丝袜一区在线| 亚洲直播在线一区| 日韩欧美在线观看视频| 国产成人精品久久二区二区| 亚洲免费一级电影| 亚洲国产精品网站| 社区色欧美激情 | 亚洲一区二区三区香蕉| 欧美成人午夜激情| 欧美性xxxxxxxxx| 久久久久久久久久亚洲| 精品色蜜蜜精品视频在线观看| 国产精品美女久久久久久免费| 国产精品国语对白| 欧美性猛交xxxxx水多| 欧美日韩在线第一页| 成人黄色短视频在线观看| 韩国福利视频一区| 亚洲成人精品视频| 国产精品黄色影片导航在线观看| 国产精品一久久香蕉国产线看观看| 中文字幕九色91在线| 成人激情综合网| 日韩成人av一区| 亚洲成av人影院在线观看| 亚洲国产成人爱av在线播放| 亚洲性视频网站| 欧美美女操人视频| 久久久久久久97| 91在线观看免费网站| 久久久av亚洲男天堂| 一区二区三区精品99久久| 福利一区福利二区微拍刺激| 91精品国产综合久久香蕉最新版| 亚洲色图色老头| 2018中文字幕一区二区三区| 亚洲第一中文字幕| 中文字幕亚洲一区二区三区五十路| 中日韩美女免费视频网址在线观看| 7777免费精品视频| 欧美另类极品videosbestfree| 国产综合在线看| 美女少妇精品视频| 九九久久综合网站| 高清欧美一区二区三区| 日韩在线观看免费高清完整版| 91久久久久久久久久久久久| 国产精品成人一区| 久久成人精品一区二区三区| 欧美在线观看一区二区三区| 91精品国产一区| 国产亚洲一级高清| 播播国产欧美激情| 亚洲综合视频1区| 91在线无精精品一区二区| 欧美亚洲成人精品| 欧美电影免费观看大全| 97精品免费视频| 日韩av在线导航| 欧美精品久久一区二区| 亚洲欧美日韩国产中文专区| 亚洲精品资源美女情侣酒店| 欧美性猛xxx| 国产精品久久久久久久久久久久久久| 国产手机视频精品| 亚洲自拍偷拍在线| 亚洲欧美在线看| 91久热免费在线视频| 97人人模人人爽人人喊中文字| 亚洲精品福利在线| 欧美日韩一区二区精品| 亚洲午夜精品久久久久久久久久久久| 成人写真视频福利网| 亚洲国产成人一区| 欧美最顶级丰满的aⅴ艳星| 国产一区二区日韩精品欧美精品| 成人免费大片黄在线播放| 日韩中文字幕网址| 欧美在线性视频| 亚洲国产精品99久久| 精品福利在线看| www.亚洲一区| 欧美午夜视频一区二区| 亚洲日本中文字幕免费在线不卡| 亚洲第一在线视频| 最近2019年日本中文免费字幕| 成人黄色在线播放| 亚洲精品国产精品国自产观看浪潮| 中文欧美在线视频| 亚洲国产精品va在线观看黑人| 亚洲国产精品人久久电影| 欧美极度另类性三渗透| 日韩不卡在线观看| 日韩成人高清在线| 国产精品久久久久久久久久久久| 国产成人精品一区二区在线| 亚洲电影成人av99爱色| 欧美丰满少妇xxxxx| 国产91成人video| 亚洲偷欧美偷国内偷| 91久久久久久久久久久| 国产一区二区三区三区在线观看| 亚洲视频在线观看视频| 欧美日韩一区二区免费在线观看| 国产欧美久久一区二区| 精品久久久久久| 国产精品欧美亚洲777777| 亚洲美女精品久久| 欧美激情视频一区| 中日韩美女免费视频网站在线观看| 17婷婷久久www|