PHP无限极分类的几种方法
导读:项目开发,经常栏目要做到无限极分类,几种方法
PHP无限极分类的几种方法
复制代码 代码如下:
namespace Util;
class Category{
static public function unlimitedForLevel($cate,$html="--",$pid=0,$level=0){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $pid){
$v['level'] = $level+1;
$v['html'] = str_repeat($html,$level);
$arr[] = $v;
$arr = array_merge($arr,self::unlimitedForLevel($cate,$html,$v['id'],$level+1));
}
}
return $arr;
}
//组合一个多维数组
static public function unlimitedForlayer($cate,$name='child',$pid=0){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $pid){
$v[$name] = self::unlimitedForlayer($cate,$name,$v['id']);
$arr[] = $v;
}
}
return $arr;
}
//传递子分类PID 返回所有父级分类
static public function getParents($cate,$pid){
$arr=array();
foreach ($cate as $v) {
if($v['id'] == $pid){
$arr[] = $v;
$arr =array_merge(self::getParents($cate,$v['pid']), $arr);
}
}
return $arr;
}
//传递父级分类ID,返回子分类ID
static public function getChildsId($cate,$id){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $id){
$arr[] = $v['id'];
$arr = array_merge($arr,self::getChildsId($cate,$v['id']));
}
}
return $arr;
}
//传递父级分类ID 返回所有子分类
static public function getChilds($cate,$id){
$arr =array();
foreach ($cate as $v) {
if($v['pid'] == $id){
$arr[] = $v;
$arr =array_merge($arr,self::getChilds($cate,$v['id']));
}
}
return $arr;
}
}
?>
转自【B5教程网】:http://www.bcty365.com/content-10-1097-1.html
PHP无限极分类的几种方法的更多相关文章
- PHP实现无限极分类的两种方式
无限极分类说简单点就是一个类可以分成一个分子类,然后一个子类又可以分另一个子类这样无限分下去,就是好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一个文件夹,PHP要实现无限极分类有两 ...
- PHP实现无限极分类的两种方式,递归和引用
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id' => 1, 'pid' =& ...
- sqlalchemy tree 树形分类 无限极分类的管理。预排序树,左右值树。sqlalchemy-mptt
简介: 无限极分类是一种比较常见的数据格式,生成组织结构,生成商品分类信息,权限管理当中的细节权限设置,都离不开无限极分类的管理. 常见的有链表式,即有一个Pid指向上级的ID,以此来设置结构.写的时 ...
- C#无限极分类树-创建-排序-读取 用Asp.Net Core+EF实现之方法二:加入缓存机制
在上一篇文章中我用递归方法实现了管理菜单,在上一节我也提到要考虑用缓存,也算是学习一下.Net Core的缓存机制. 关于.Net Core的缓存,官方有三种实现: 1.In Memory Cachi ...
- PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂
当你学习php无限极分类的时候,大家都觉得一个字"难"我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一 ...
- PHP无限极分类生成树方法,无限分级
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...
- PHP无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,整理分享了. function genera ...
- 分享一个牛逼的PHP无限极分类生成树方法,巧用引用(转)
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了.这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function g ...
- 【laravel5.4】Baum无限极分类和collect助手函数、transform()中间件(转换数据)方法使用
1.目的,无限极分类 /* * getdepartment:获取[当前登录用户对应公司的所有有效部门] * DB::table ==>返回查询构造器结果,不会返回一个collect实例 * 而 ...
随机推荐
- laravel 邮箱改密功能
参考网址: http://laravelacademy.org/post/1290.html
- OBIEE 简介
Oracle BIEE历史: BIEE:全称Oracle Business Intelligence Enterprise Edition. Oracle公司在05年底收购Siebel,取其前端开发工 ...
- Logger日志管理工具类
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- win8删除无线网络其中的一项配置
netsh wlan delete profile name="无线名称"
- 《Windows驱动开发技术详解》之IRP的同步
应用程序对设备的同步异步操作: 大部分IRP都是由应用程序的Win32 API函数发起的.这些Win32 API本身就支持同步和异步操作.例如,ReadFile.WriteFile和DeviceIoC ...
- Hibernate与Sleep的区别
转自:http://blog.sina.com.cn/s/blog_4b6e98810100n37k.html 休眠(Hibernate),将系统切换到该模式后,系统会自动将内存中的数据全部转存到硬盘 ...
- Windows 路径问题
Windows路径是我们经常使用的东西,它看似简单,实际上隐含许多细节,这些都是在平常的使用过程中注意不到的.下面让我们来看看各种各样的Windows路径. 提起路径,我们都会想到" ...
- QTP使用小技巧
1.创建action template. 当希望在每一个新建action时都增加一些头部说明,比如作者.创建日期.说明等,用action template 来实现最简单快捷. ...
- 1.5后台修改添加TDK
manager\includes\languages\english.php //注意 是后台的语言包define('BOX_CONFIGURATION_Lin_STORE', 'TDKcss_set ...
- 第三十三节,sys解释器相关模块
首先要引入import sys模块 sys.argv 功能:获取向脚本文件传入的参数,返回的列表,列表里的第一个元素是脚本文件路径和名称,后面的元素是传入的向脚本传入的参数 使用方法:sys.argv ...