宝哥软件园

深入分析PHP无限极分类案例教程

编辑:宝哥软件园 来源:互联网 时间:2021-11-01

平时难免会遇到无限极点分类的问题,因为效率、逻辑等问题总是让这类问题更加尖锐。今天,基于yii2框架,我们以列infinity为例简单地处理这个问题。

首先,我们有一个列数据表树。

表格结构如下(原文有图片)。

看起来表格结构很简单。

我们插入几条测试数据。

INSERT INTO `tree` (`id `、` parent_id `、` name`) VALUES (1,0,' A ')、(2,0,' B ')、(3,1,' A ')、(4,3,' aa ')、(5,2,' B ')、(6,4,' AAA ');树形结构大致如下。

|A | - a | - aa | - aaa |B | - b

这正是我们需要的数据结构。让我们看看如何处理它以获得所需的结果。

如前所述,它基于yii2,因此我们的写作遵循面向对象的规则。

类树{//访问索引查看树结构公共函数动作索引(){ $ data=self :3360 gettree();//为了测试方便,我们以json格式输出 yii :3360 $ app-response-format= yii 33603360 format _ JSON。返回$数据;}//获取树公共静态函数gettree(){//这里我们直接获取所有数据,然后通过程序进行处理。//无限极点分类最忌讳的就是对数据库进行逐层操作,容易造成内存溢出。//计算机崩溃的结果是$ data=static :3360 find()-all();return self : _ generateTree($ data);}//生成树私有静态函数_ generatetree ($ data,$ PID=0){ $ tree=[];if($ data is _ array($ data)){ foreach($ data as $ v){ if($ v[' parent _ id ']==$ PID){ $ tree[]=[' id '=$v['id'],' name'=$v['name'],' parent_id'=$v['parent_id'],' children '=self : _ generateTree($ data,$ v[' id '],];} } }返回$ tree}}我们来访问树/索引,渲染如下。

这样就可以看到非常清晰的树形结构图,这也是我们最终需要的。

关于PHP Infinitus分类的案例教程会给大家介绍这么多,希望对大家有所帮助!

更多资讯
游戏推荐
更多+