1、本文更新日期:2018/05/20 , 亲测可用,在原有基础上进行增强和 详细化 。

2、面包屑导航 和 子孙树 效果图如下:

3、代码:

<?php
// 无限级分类中,查家谱树(面包屑导航) ++ 子孙树(无限极分类) $area = array(
0=>array('id'=>1,'cat_name'=>'北京市','pid'=>0),
1=>array('id'=>2,'cat_name'=>'馆陶县','pid'=>3),
2=>array('id'=>3,'cat_name'=>'海淀区','pid'=>1),
3=>array('id'=>4,'cat_name'=>'朝阳区','pid'=>1),
); function fatherTree($arr,$id) {
static $Tree = array();
foreach($arr as $k=>$v) {
if($v['id'] == $id) {
$Tree[] = $v;
fatherTree($arr,$v['pid']); }
}
return $Tree;
} $list = fatherTree($area,2);
$list2 = $list;
//构成面包屑 如: 北京市 > 海淀区 > 馆陶县 ---- >>>> (不带跳转链接)
krsort($list2);//下标倒序排列
foreach($list2 as $v ){
$list_arr[] = $v['cat_name']; //仅含分类名称cat_name的一维数组
}
$url = implode(" > ",$list_arr);
echo "<pre>";
var_dump($url); //构成面包屑 如: 北京市 > 海淀区 > 馆陶县 ---- >>>> (带跳转标签<a>支持跳转)
function displayCatePath($data,$id, $url='index.php?id=') {
$res = fatherTree($data,$id);
krsort($res);//下标倒序排列
$str = '';
foreach($res as $k=>$val) {
$str .= "<a href='{$url}{$val['id']}'>{$val['cat_name']}</a>>";
}
return $str;
}
echo displayCatePath($area,10, 'cate.php?page=1&id='); echo "<br>"; // 无限级分类中,查找子孙树
function sonTree($arr,$pid = 0,$lev=1) {
static $Tree = array();
foreach($arr as $k=>$v) {
if($v['pid'] == $pid) {
if(!isset($v['lev'])) $v['lev']='';
$v['lev'] = $lev;
$Tree[] = $v;
sonTree($arr,$v['id'],$lev+1);
}
}
return $Tree;
} $list = sonTree($area,0,1);
foreach($list as $k=>$v) {
echo str_repeat('_+',$v['lev']-1),$v['cat_name'],'<br />';
} ?>

4、over,拿去用吧!

无限极分类php实现—查子孙树、家谱树的更多相关文章

  1. sqlalchemy tree 树形分类 无限极分类的管理。预排序树,左右值树。sqlalchemy-mptt

    简介: 无限极分类是一种比较常见的数据格式,生成组织结构,生成商品分类信息,权限管理当中的细节权限设置,都离不开无限极分类的管理. 常见的有链表式,即有一个Pid指向上级的ID,以此来设置结构.写的时 ...

  2. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制

    在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...

  3. C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现

    今天做一个管理后台菜单,想着要用无限极分类,记得园子里还是什么地方见过这种写法,可今天找了半天也没找到,没办法静下心来自己写了: 首先创建节点类(我给它取名:AdminUserTree): /// & ...

  4. js实现无限极分类

    转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...

  5. 夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

    我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是 ...

  6. DotNet菜鸟入门之无限极分类(一)设计篇

    写这个教程的原因,是因为,无限极分类,在许多项目中,都用得到.而对于新手来说,不是很好理解,同时,操作上也有一些误区或者不当之处.所以我就斗胆,抛砖引玉一下,已一个常见的后台左侧频道树为例子,讲解一下 ...

  7. PHP实现菜单无限极分类

    菜单数据 这里我们的菜单数据是临时数据, 没有从数据库中查询处理,数据基本和数据库中的的相似. 数据如下: $items = array( 1 => array('id' => 1, 'p ...

  8. PHP 商城无限极分类

    无限极分类,用的是递归,在外部调用fen()方法即可 index是刚开始寻找的顶级分类,suo是为了在前端展示的时候缩进 ,$suo=){ 一个数组用来返回的 $t=[]; 这是查询数据库的所有内容 ...

  9. php 实现无限极分类

    原始数据 $array = array( array('id' => 1, 'pid' => 0, 'n' => '河北省'), array('id' => 2, 'pid' ...

随机推荐

  1. [leetcode]Permutations II @ Python

    原题地址:https://oj.leetcode.com/problems/permutations-ii/ 题意: Given a collection of numbers that might ...

  2. rqnoj-329-刘翔!加油!-二维背包

    注意排除干扰项. 因为价值不会相等,所以价值的多少与本题没有任何关系,. 所以价值为干扰项,所以不用考虑. 二维背包,简单求解. #include<stdio.h> #include< ...

  3. SQL Server 数据库性能优化

    分析比较执行时间计划读取情况 1. 查看执行时间和cpu set statistics time on select * from Bus_DevHistoryData set statistics ...

  4. IIS 7.5: HOW TO ENABLE TLS 1.1 AND TLS 1.2

    In IIS 7.5, which is installed on Windows 2008 R2 servers, only SSL 3.0 and TLS 1.0 are enabled for ...

  5. HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用

      解决方法:   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(webURL);                //声明一个H ...

  6. 阿里云centos安装ftp与svn过程

    1.下载xshell或者secureCRT 2.登录centos或者服务器 3.安装vsftpd [root@xxx]# yum install vsftpd //安装vsftpd [root@xxx ...

  7. .net平台性能很不错的轻型ORM类Dapper

    dapper只有一个代码文件,完全开源,你可以放在项目里的任何位置,来实现数据到对象的ORM操作,体积小速度快. 使用ORM的好处是增.删.改很快,不用自己写sql,因为这都是重复技术含量低的工作,还 ...

  8. 【Eclipse】如何在Eclipse中使用命令行?

    如何在Eclipse中使用命令行? 虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序.在两个程序中切换来切 ...

  9. BAT,你好!字幕组,再见!——也许要跟美剧说再见了~

    对于美剧迷来说,上周的星期六(2014 年11 月 22 日)是黑色的一天. 11 月 22 日,人人影视暂时关站,并发布公告称网站正在清理内容.虽然这不是人人影视第一次关站清理,而且人人影视还给出提 ...

  10. java语言特性之一

    package java.util.Collections; public static int indexOfSubList(List<?> source, List<?> ...