无限极分类,传递一个子ID得到所有父集,用于在前台分层显示标题
方法:
static public function getParents($data,$id){
$arr=array();
foreach ($data as $v) {
if ($v['id']==$id) {
$arr[]=$v;
$arr=array_merge(self::getParents($data,$v['pid']),$arr);
}
}
return $arr;
}
调用:
<?php
namespace Home\Controller;
use Think\Controller;
use Home\Clas\Cate;
class IndexController extends Controller {
public function index(){
$data=array(
'0'=>array(
'id'=>1,
'pid'=>0
),
'1'=>array(
'id'=>2,
'pid'=>0
),
'2'=>array(
'id'=>3,
'pid'=>1
),
'3'=>array(
'id'=>4,
'pid'=>3
)
);
//$data=Cate::unlimitedForLevel($data);
//$data=Cate::unlimitedForLayer($data);
$data=Cate::getParents($data,4);
echo '<pre>';
print_r($data);die;
echo '</pre>';
$this->display();
}
}
效果:

无限极分类,传递一个子ID得到所有父集,用于在前台分层显示标题的更多相关文章
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现
今天做一个管理后台菜单,想着要用无限极分类,记得园子里还是什么地方见过这种写法,可今天找了半天也没找到,没办法静下心来自己写了: 首先创建节点类(我给它取名:AdminUserTree): /// & ...
- [thinkphp] 无限极分类
<?php /* * 无限极分类 类 */ header("Content-Type: text/html; charset=UTF-8"); Class Category ...
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...
- PHP无限极分类的几种方法
导读:项目开发,经常栏目要做到无限极分类,几种方法PHP无限极分类的几种方法 复制代码 代码如下:namespace Util;class Category{static public functio ...
- thinkphp5.0无限极分类及格式化输出
首先我们来看数据表 从上图中可以发现,中国下有贵州,北京两个子节点,而北京有天安门一个子节点,纽约的子节点是"纽约的子类". 从pid为0看出,中国和纽约是顶级节点. 因为贵州的p ...
- php 实现无限极分类
原始数据 $array = array( array('id' => 1, 'pid' => 0, 'n' => '河北省'), array('id' => 2, 'pid' ...
- PHP实现无限极分类的两种方式,递归和引用
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id' => 1, 'pid' =& ...
- php无限极分类以及递归(thinkphp)
php无限极分类: 无限极分类重点在于表的设计: 1在model中: class CatModel extends Model{ protected $cat = array(); public fu ...
- js实现无限极分类
转载注明出处!!! 转载注明出处!!! 转载注明出处!!! 因为要实现部门通讯录,后台传来的数据是直接从数据库里拿的部门表,所以没有层级分类,只有parentId表示从属关系,所以分类的事情就交给我来 ...
随机推荐
- C#:文件、路径(Path_File)
public class Path_File { public string AppPath { get { return AppDomain.CurrentDomain.BaseDirectory; ...
- android5.x以上 状态栏透明的问题
1.先在style中把 statusBarColor 设置为透明 如下 <item name="android:statusBarColor">@android:co ...
- JavaScript DOM 编程艺术(第2版)读书笔记(3)
DOM DOM:文档对象模型: 节点 元素节点:DOM的原子是元素节点.<body>.<p>.<ul>之类的元素.元素可以包含其他的元素.没有被包含在其他元素里的唯 ...
- ZendStudio调试配置(XDebug)
服务器配置:WAMP Sever 3.0.0 调试器环境:Zend Studio 12.0 Build ID: 12.0.0.v20141117-20141115-2331-278 License: ...
- Callable, Runnable, Future, FutureTask
Java并发编程之Callable, Runnable, Future, FutureTask Java中存在Callable, Runnable, Future, FutureTask这几个与线程相 ...
- 短信轰炸PC版
前言 之前用过android版短信轰炸的apk,于是想反编apk查看源码找短信接口,做一个PC版本的,不料反编失败.后不了了之... 昨日逛论坛时无意中看到一个网站有此功能,打开一试究竟,效果可以,于 ...
- jquery.util.easyui.dialog
(function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...
- NET MVC1项目升级到MVC2最简单的方法
NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照 ...
- C语言第5天
[1]数组 多个数据类型相同元素的集合: [2]访问元素 从下标0开始,到N-1结束 [3]定义数组 <存储类型> <数据类型 > <数组名>[<表达式> ...
- JavaScript(1)
JavaScript(1) 第一次见到JavaScript的时候,看到了熟悉的"Java",原来都是骗人的,李鬼不是李逵呀=.= 然而发现这个东西还是特别实用的,和Java比起来它 ...