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

首頁 > 編程 > PHP > 正文

PHP中的無限級分類、無限嵌套評論

2020-03-22 18:12:50
字體:
來源:轉載
供稿:網友

一般來說,遞歸被稱為函數自身的調用。

遞歸在開發中的實際運用N級分類

無限級的分類在平常的開發中是常見的需求,并且在不少面試題中都會碰到。不管你做什么項目,應該都碰到過類似的問題。下面,我們就使用遞歸的思想,實戰一把。

  • SQL結構

CREATE TABLE `categories` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `categoryName` varchar(100) NOT NULL,  `parentCategory` int(11) DEFAULT '0',  `sortInd` int(11) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

然后我們虛擬出一些數據出來,最后長這個樣子。

Snipaste_2019-06-19_13-04-46.png

下面 我們直接看代碼實現。

<?php$dsn = "mysql:host=127.0.0.1;port=3306;dbname=light-tips;charset=UTF8;";$username = 'root';$password = 'admin';$pdo = new PDO($dsn, $username, $password);$sql = 'SELECT * FROM `categories` ORDER BY `parentCategory`, `sortInd`';$result = $pdo->query($sql, PDO::FETCH_OBJ);$categories = [];foreach ($result as $category) {    $categories[$category->parentCategory][] = $category;}function showCategoryTree($categories, $n){    if (isset($categories[$n])) {        foreach ($categories[$n] as $category) {            echo str_repeat('-', $n) . $category->categoryName . PHP_EOL;            showCategoryTree($categories, $category->id);        }    }    return;}showCategoryTree($categories, 0);

可以看到,我們首先獲取到了所有的數據,然后按照父級ID歸類。這是一個非常棒的數據結構。想象一下,我們把展示頂級目錄下所有子目錄的問題分解成了展示自己的類目標題和展示數據中parentCategory為當前目錄id的子目錄,然后使用開始遞歸調用。最后的輸出是這個樣子的。

Snipaste_2019-06-19_13-05-59.png

無限嵌套評論

先來看下這個 無限嵌套評論長什么樣子。如圖:

Snipaste_2019-06-19_13-06-49.png

上面的栗子,又是一個經典的可以使用遞歸解決的案例。還是來看下數據結構。

CREATE TABLE `comments` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `comment` varchar(500) NOT NULL,  `username` varchar(50) NOT NULL,  `datetime` datetime NOT NULL,  `parentID` int(11) NOT NULL,  `postID` int(11) NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

大家可以自己實踐一遍,先不要看下面的內容。

<?php$dsn = "mysql:host=127.0.0.1;port=3306;dbname=light-tips;charset=UTF8;";$username = 'root';$password = 'admin';$pdo = new PDO($dsn, $username, $password);$sql = 'SELECT * FROM `comments` WHERE `postID` = :id ORDER BY `parentId`, `datetime`';$stmt = $pdo->prepare($sql);$stmt->setFetchMode(PDO::FETCH_OBJ);$stmt->execute([':id' => 1]);$result = $stmt->fetchAll();$comments = [];foreach ($result as $comment) {    $comments[$comment->parentID][] = $comment;}function showComments(array $comments, $n){    if (isset($comments[$n])) {        foreach ($comments[$n] as $comment) {            echo str_repeat('-', $n) . $comment->comment . PHP_EOL;            showComments($comments, $comment->id);        }    }    return;}showComments($comments, 0);
文件掃描

使用遞歸進行目錄文件的掃描的栗子。

<?phpfunction showFiles(string $dir, array &$allFiles){    $files = scandir($dir);    foreach ($files as $key => $html' target='_blank'>value) {        $path = realpath($dir . DIRECTORY_SEPARATOR . $value);        if (!is_dir($path)) {            $allFiles[] = $path;        } else if ($value != "." && $value != "..") {            showFiles($path, $allFiles);            $allFiles[] = $path;        }    }    return;}$files = [];showFiles('.', $files);foreach ($files as $file) {    echo $file . PHP_EOL;}

更多PHP相關技術文章,請訪問PHP教程欄目進行學習!

以上就是PHP中的無限級分類、無限嵌套評論的詳細內容,更多請關注 其它相關文章!

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线播放日韩精品| 成人免费大片黄在线播放| 欧美一级在线亚洲天堂| 久久天堂av综合合色| 91精品国产九九九久久久亚洲| 久久久久久高潮国产精品视| 亚洲系列中文字幕| 国产精品美女av| 一区二区欧美在线| 91天堂在线观看| 日韩欧美国产一区二区| 91免费视频网站| 日韩亚洲在线观看| 91亚洲国产成人久久精品网站| 国模视频一区二区| 亚洲自拍高清视频网站| 亚洲天堂av图片| 国产成人精品在线| 精品国产91久久久久久| 欧美国产日韩一区二区| 亚洲人成亚洲人成在线观看| 欧美精品久久久久久久久久| 精品视频久久久久久久| 国产成+人+综合+亚洲欧美丁香花| 久久久女人电视剧免费播放下载| www.欧美三级电影.com| 日韩欧美精品中文字幕| 欧美日韩精品在线观看| 国产精品久久av| 欧美亚洲激情视频| 亚洲欧美国产制服动漫| 91精品久久久久久久久久久久久| 亚洲乱码一区二区| 久久久精品中文字幕| 欧美日韩第一页| 亚洲人高潮女人毛茸茸| 亚洲精品免费一区二区三区| 国产免费亚洲高清| 欧美在线欧美在线| 亚洲v日韩v综合v精品v| 日韩成人免费视频| 欧美成人性色生活仑片| 日韩av电影手机在线| 91夜夜揉人人捏人人添红杏| 色777狠狠综合秋免鲁丝| 国产精品一区二区久久久| 亚洲欧美在线免费| 韩国视频理论视频久久| 欧美成人激情视频免费观看| 国产精品高潮呻吟久久av无限| 国产91成人video| 国外日韩电影在线观看| 国产精品扒开腿做爽爽爽的视频| 亚洲欧美日韩国产中文专区| 91国内揄拍国内精品对白| 日韩电影在线观看中文字幕| 伊人久久久久久久久久久| 庆余年2免费日韩剧观看大牛| 成人午夜在线视频一区| 久久久久久成人| 国产精品高潮在线| 精品成人乱色一区二区| 久久精品小视频| xx视频.9999.com| 欧美电影在线免费观看网站| 国产乱人伦真实精品视频| 欧美激情精品久久久久久变态| 欧美理论在线观看| 欧美激情精品久久久久久变态| 国产精品丝袜久久久久久不卡| 欧美插天视频在线播放| 黑人欧美xxxx| 一区二区三区国产视频| 亚洲精品一区二区网址| 91久久在线观看| 日韩成人在线观看| 国产精品久久一区主播| 国产精品久久久久久超碰| 日韩女优人人人人射在线视频| 国产玖玖精品视频| 亚洲国产精彩中文乱码av在线播放| 668精品在线视频| 日韩美女免费线视频| 国产精品午夜一区二区欲梦| 日韩精品丝袜在线| 91精品国产乱码久久久久久久久| 久久精品一偷一偷国产| 欧美激情一区二区久久久| 97国产精品人人爽人人做| 久久人人爽人人爽人人片av高清| 欧美xxxx综合视频| 亚洲电影免费在线观看| 8090理伦午夜在线电影| 亚洲成色www8888| 精品国内自产拍在线观看| 欧美日韩国产999| 久久国产精品影片| 亚洲最大的av网站| 欧美日韩第一视频| 夜夜嗨av一区二区三区四区| 日韩在线免费高清视频| 国产亚洲美女精品久久久| 91精品国产91久久久久久最新| 亚洲网在线观看| 国产成人福利视频| 欧美精品在线免费| 亚洲精品日产aⅴ| 性色av一区二区咪爱| 在线精品国产成人综合| 成人妇女免费播放久久久| 日本久久91av| 国产一区二区精品丝袜| 亚洲小视频在线观看| 亚洲国产91精品在线观看| 欧美一级淫片aaaaaaa视频| 日韩精品在线观| 欧美肥老妇视频| 亚洲一区二区黄| 色诱女教师一区二区三区| 精品少妇一区二区30p| 亚洲精品国产精品国自产观看浪潮| 亚洲激情在线观看视频免费| 91在线免费观看网站| 亚洲区中文字幕| 日韩av成人在线观看| 亚洲人成电影网站色…| 日韩欧美中文字幕在线播放| 亚洲自拍偷拍网址| 午夜精品一区二区三区在线| 久久男人的天堂| 亚洲美女免费精品视频在线观看| 精品国模在线视频| 2018日韩中文字幕| 国产欧美日韩精品丝袜高跟鞋| 川上优av一区二区线观看| 亚洲精品国偷自产在线99热| 日韩欧亚中文在线| 精品视频9999| 日韩高清欧美高清| 日韩在线激情视频| 成人精品久久av网站| 亚洲人成在线观看网站高清| 亚洲人成电影网站色| 92国产精品久久久久首页| 欧美高清无遮挡| 国产视频精品久久久| 日韩在线精品一区| 色青青草原桃花久久综合| 在线视频中文亚洲| 韩国视频理论视频久久| 国产精品日韩久久久久| 欧美精品18videos性欧美| 精品国偷自产在线视频| 久久好看免费视频| 夜夜躁日日躁狠狠久久88av| www.欧美精品| 18一19gay欧美视频网站| 91亚洲一区精品| 欧美理论电影在线播放| 成人久久久久爱| 国产91精品久| 国产99久久精品一区二区 夜夜躁日日躁| 色樱桃影院亚洲精品影院| 久久国产精品影视|