后端开发|php教程
php,无限极
后端开发-php教程
作者:白狼 出处:http://www.manks.top/php_tree_deep.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。原文有图片。
淘宝客cms源码分享,ubuntu运维日志,爬虫小程序下载,php输出option,衢州快照seolzw
平时开发中或多或少不可避免会遇到无限极分类的问题,因为效率、逻辑等问题也一直使这类问题比较尖锐。今天我们以yii2框架为基础,栏目无限极为例,对这个问题进行一个简单的处理。
易语言聊天器源码,vscode登录同步,ubuntu镜像源下载教程,配置tomcat显示,sqlite数据变动监测,wordpress插件制作,ps前端框架是什么,爬虫批量下载图片,反序列化php,SEO如何优化电池,文件签收网站源码,css div网页布局代码,html5静态页模板,wap页面样式模版,项目任务管理系统源代码,微擎小程序答题源码lzw
首先我们有一张栏目数据表 tree
p2p播放器源码,ubuntu终端屏幕大小,tomcat的卸载与安装,爬虫产品购买,php图片转全景,河北抖音seo关键词排名哪家好lzw
表结构如下图(原文有图)
看上去表结构很简单。
我们插入几条测试数据
INSERT INTO `tree` (`id`, `parent_id`, `name`) VALUES (1, 0, A), (2, 0, B), (3, 1, a), (4, 3, aa), (5, 2, ), (6, 4, aaa);
树形结构大致如下
|A |--a |----aa |------aaa |B |--b
这也正是我们所需要的数据结构形式,下面我们来看看如何处理才能够得到所需要的结果。
我们前面也说了,以yii2为基础,因此我们的写法也按照面向对象的规则来
class tree {//访问index查看树形结构public function actionIndex () { $data = self::getTree(); //为了方便测试,我们这里以json格式输出 \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; return $data;}//获取树public static function getTree () { //这里我们直接获取所有的数据,然后通过程序进行处理 //在无限极分类中最忌讳的是对数据库进行层层操作,也就很容易造成内存溢出 //最后电脑死机的结果 $data = static::find()->all(); return self::_generateTree($data);}//生成树private static function _generateTree ($data, $pid = 0) { $tree = []; if ($data && is_array($data)) { foreach($data as $v) { if($v[parent_id] == $pid) {$tree[] = [ id => $v[id], ame => $v[ ame], parent_id => $v[parent_id], children => self::_generateTree($data, $v[id]),]; } } } return $tree;} }
我们访问下tree/index看看,效果图如下
这样我们可以看到一个很清晰的树形结构图,也就是我们最终所需要的。
以上就介绍了谈一次php无限极分类的案例,包括了php,无限极方面的内容,希望对PHP教学有兴趣的朋友有所帮助。