一、从数据库查出来的数据需要id、parentid、level。

  id唯一识别栏目,parentid为该栏目所属父类id,level标示该栏目是几级栏目。以下代码就可以实现一个简单的树结构。

 public function tree2(){
$r = array(
array(
'id'=>1,
'name'=>'智慧教育',
'parent_id'=>0,
'level'=>0 //一级分类
),
array(
'id'=>2,
'name'=>'学校列表',
'parent_id'=>1,
'level'=>1 //二级分类
),
array(
'id'=>4,
'name'=>'智慧医疗',
'parent_id'=>0,
'level'=>0 //一级分类
),
array(
'id'=>5,
'name'=>'医院列表',
'parent_id'=>4,
'level'=>1 //二级分类
),
array(
'id'=>6,
'name'=>'名医列表',
'parent_id'=>5,
'level'=>2 //三级分类
) );
//输出为select标签:
echo '<h1>PHPTree</h1>';
echo '<select style="width:300px;">';
foreach($r as $item){
echo '<option>';
//根据所在的层次缩进
echo str_repeat('|—',$item['level']);
echo $item['name'];
echo '</option>';
}
echo '</select>';
}

  页面效果图是这样的。

    aaarticlea/png;base64,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" alt="" />

二、但是一般表结构中是没有level的。

  这样就需要多层循环嵌套加if判断,先循环显示父级栏目parentid=0,及它就是一级栏目;然后再循环根据parentid与一级栏目的id判断,如果相等则显示对应的栏目,二级栏目就显示出来啦,以此类推,可以显示所有栏目。但这只适合已知栏目层数且层数不多的情况,因为要根据层数来判断遍历的次数。且如果层数过多,代码量就会很大。

 public function tree3(){
//从表中查到所有栏目
$cat = M('category');
$allcat = $cat ->order('listorder ASC') ->select(); //输出select标签
echo '<h2>栏目tree</h2>';
echo '<select style="width:300px;">';
foreach ($allcat as $val) {
if($val[parentid] == 0){
echo '<option>';
echo $val['catname'];
echo '</option>';
}
foreach ($allcat as $value) {
if($val[id] == $value[parentid]){
echo '<option>';
echo '|—'.$value['catname'];
echo '</option>';
}
}
}
......
}

  那怎么知道栏目层数,或者怎么判断该栏目下面还有没有子栏目呢?

三、这里采用递归的方式

  这样就可以不断重复查询本身的pid等于上一级id的数据,通过判断查到的数据是否为空来判断它有没有子栏目。

  还有一个问题就是根据级别设置缩进,这样看着有层次感。那这个怎么实现呢?在php中有一个字符串函数str_repeat(),两个参数,第一个表示要重复的字符串,第二个是重复的次数。

  代码片段如下:

//递归实现无限级菜单
public function tree2($pid=0,$level=0){
$cat = M('category');
$data = $cat ->where("parentid = $pid") ->field('id,catname,parentid') ->select(); $level ++;
if(!empty($data)){
$tree = array();
foreach ($data as $val) {
$val['catname'] = str_repeat('|—', $level-1).$val['catname'];
$child = $this ->tree2($val[id],$level);
$tree[] = array('self'=>$val,'child'=>$child,'level'=>$level);
}
}
return $tree;
} function test(){
$allcat = $this ->tree2(0);
dump(json_encode($allcat));
}

  上面tree2方法找到了所有栏目,并组装到tree数组中,tree是一个多维数组,现在要从数组中取出所有栏目名称catname,同样递归调用,代码如下:

//遍历找出所有catname
function getcatname($array){
if(is_array($array)){
foreach ($array as $key=>$value ){
if(is_array($value)){
$this ->getcatname($value);
}else{
$temp = array('key'=>$key,'value'=>$value);
if ($temp['key'] == 'catname') {
echo $temp['value']."<br/>";
}
}
}
}
} function test(){
$allcat = $this ->tree2(0);
$this ->getcatname($allcat);
}

  页面显示效果图如下:

    aaarticlea/png;base64,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" alt="" />

  这样就实现了多级栏目的显示。

PHP树结构,实现无限分级的更多相关文章

  1. 无限分级和tree结构数据增删改【提供Demo下载】

    无限分级 很多时候我们不确定等级关系的层级,这个时候就需要用到无限分级了. 说到无限分级,又要扯到递归调用了.(据说频繁递归是很耗性能的),在此我们需要先设计好表机构,用来存储无限分级的数据.当然,以 ...

  2. 基于react实现无限分级菜单

    在开发CMS(内容管理系统)系统时,一般都会用到一个侧边栏或者顶部的二级或者三级菜单,当点击或者鼠标悬浮时,菜单能够随之展开或收起. 本文纯粹为了练习一下react,因此我会在react环境下实现这么 ...

  3. C#使用二叉树算法设计一个无限分级的树表

    效果图: 数据库: 操作树的示意图: 控制器代码: using Dw.Business; using Dw.Entity; using Dw.Utilities; using System; usin ...

  4. C#无限分级实现,前端WEB页面接收,后台提供层级Json数据

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Te ...

  5. PHP无限极分类生成树方法,无限分级

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...

  6. 无限分级Repeater递归实现:读取一次数据库,使用LINQ2SQL技术,支持排序&amp;显示隐藏

    预览效果图: Selenium 数据库结构: id(int)    classname(string)   parentid(int) sort(int用于显示与排序) 1 家居 0 1 2 家电 0 ...

  7. 转:打造DropDownList,TreeView,ListBox无限极分类目录树

    [csharp] view plaincopyprint? #region DropDownList无限递归显示层次关系 /// <summary> /// 创建无限分级下拉列表框 /// ...

  8. Java生鲜电商平台-商品无限极目录的设计与架构

    Java生鲜电商平台-商品无限极目录的设计与架构 说明:任何一个商品都应该是先属于某一个目录,然后在目录中添加商品,目录理论上最多支持三级,因为级别太多,不容易管理.但是设计中需要设计无限制的级别. ...

  9. 再讲IQueryable<T>,揭开表达式树的神秘面纱

    接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...

随机推荐

  1. firstChild,lastChild,nextSibling,previousSibling & 兼容性写法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 腾讯AlloyTeam正式发布omi-cli脚手架 v1.0 - 创建网站无需任何配置

    omi-cli omi-cli omi-cli命令 omi框架 用户指南 文件目录 npm 脚本 npm start npm run dist 代码分割 兼容 IE8 插入 CSS 插入组件局部 CS ...

  3. 每篇半小时1天入门MongoDB——3.MongoDB可视化及shell详解

    本篇主要介绍MongoDB可视化操作以及shell使用及命令,备份恢复.数据导入导出. MongoVUE安装和简单使用 使用mongo.exe 管理数据库虽然可行,功能也挺强大,但每次都要敲命令,即繁 ...

  4. STM8程序在IAR中报错 unable to allocate space for sections

    Error[Lp011]: section placement failed: unable to allocate space for sections/blocks with a total es ...

  5. ASP.NET MVC5(三):表单和HTML辅助方法

    表单的使用 Action和Method特性 Action特性用以告知浏览器信息发往何处,因此,Action特性后面需要包含一个Url地址.这里的Url地址可以是相对的,也可以是绝对的.如下Form标签 ...

  6. Chapter 7:Statistical-Model-Based Methods

    作者:桂. 时间:2017-05-25  10:14:21 主要是<Speech enhancement: theory and practice>的读书笔记,全部内容可以点击这里. 书中 ...

  7. Java基础——抽象类和接口

    之所以将抽象类和接口放在一起做笔记,是因为他们之间很难区分又各自独立.在学习完Java程序设计的三大特点(封装.继承.多态)之后,我最大的收获是,慢慢理解了Java语言这种面向对象程序设计的优越性,它 ...

  8. 制作Ubuntu Kylin局域网源

    国人参与开发的开源操作系统UbuntuKylin(http://www.ubuntukylin.com/)已经发布有一段时间了,一直想在单位的局域网内部用用,可惜离线安装比较麻烦,于是搜索了些如何制作 ...

  9. Bash中的数学计算

    一.整数计算 1.整数 $delare -i num$num=5+5$echo $num10 $num="5 + 8"$echo $num13注意:算式中如果有空格,需要用引号引起 ...

  10. 【PHP】最详细PHP从入门到精通(三)——PHP中的数组常用函数汇总

     PHP从入门到精通 之PHP中的数组常用函数详解 数组作为PHP中最常用的结构之一,PHP强大的数组函数功能,给数组的相关操作带来了极大的便利.今天给大家介绍的PHP中数组函数,是PHP数组中重要的 ...