简单好用的PHP无限分类
/**
* author: askie
* blog: http://www.pkphp.com
* 版权: 随便用
* 无限分类
*/
class Tree
{
public $data=array();
public $cateArray=array();
function Tree()
{
}
function setNode ($id, $parent, $value)
{
$parent = $parent?$parent:0;
$this->data[$id] = $value;
$this->cateArray[$id] = $parent;
}
function getChildsTree($id=0)
{
$childs=array();
foreach ($this->cateArray as $child=>$parent)
{
if ($parent==$id)
{
$childs[$child]=$this->getChildsTree($child);
}
}
return $childs;
}
function getChilds($id=0)
{
$childArray=array();
$childs=$this->getChild($id);
foreach ($childs as $child)
{
$childArray[]=$child;
$childArray=array_merge($childArray,$this->getChilds($child));
}
return $childArray;
}
function getChild($id)
{
$childs=array();
foreach ($this->cateArray as $child=>$parent)
{
if ($parent==$id)
{
$childs[$child]=$child;
}
}
return $childs;
}
//单线获取父节点
function getNodeLever($id)
{
$parents=array();
if (key_exists($this->cateArray[$id],$this->cateArray))
{
$parents[]=$this->cateArray[$id];
$parents=array_merge($parents,$this->getNodeLever($this->cateArray[$id]));
}
return $parents;
}
function getLayer($id,$preStr='|-')
{
return str_repeat($preStr,count($this->getNodeLever($id)));
}
function getValue ($id)
{
return $this->data[$id];
} // end func
}
/*$Tree = new Tree("请选择分类");
//setNode(目录ID,上级ID,目录名字);
$Tree->setNode(1, 0, '目录1');
$Tree->setNode(2, 1, '目录2');
$Tree->setNode(5, 3, '目录5');
$Tree->setNode(3, 0, '目录3');
$Tree->setNode(4, 2, '目录4');
$Tree->setNode(9, 4, '目录9');
$Tree->setNode(6, 2, '目录6');
$Tree->setNode(7, 2, '目录7');
$Tree->setNode(8, 3, '目录8');
//print_r($Tree->getChildsTree(0));
//print_r($Tree->getChild(0));
//print_r($Tree->getLayer(2));
$category = $Tree->getChilds();
//遍历输出
foreach ($category as $key=>$id)
{
echo $id.$Tree->getLayer($id, '|-').$Tree->getValue($id)."\n";
}*/
?>
转载于:https://www.cnblogs.com/8user/archive/2008/08/24/1275295.html
简单好用的PHP无限分类相关推荐
- php 递归格式化数组,PHP利用递归实现无限分类,格式化数组的简单示例
这篇文章主要为大家详细介绍了PHP利用递归实现无限分类,格式化数组的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!我们要做一个商品的无限分类 ...
- 关于一个无限分类的多选,单选相关的控件
最近在一个项目中需要用到无限分类的平铺多选,单选这些功能,查了一些资料,结果大都是一些用IFrame这样的东西做的,虽然用起来直观,但本人更喜欢集成控件形式的,于是抽了一些时间做了一个.思路是利用控件 ...
- php mysql 分类_php+mysql实现无限分类实例详解
本文实例讲述了php+mysql实现无限分类的方法.分享给大家供大家参考.具体分析如下: 1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类: 2.数据库设计通过特定格式进行 ...
- 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...
1.session的注意点: @session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] s ...
- php mysql无限_php+mysql实现无限分类实例详解
php+mysql实现无限分类实例详解 fenlei($arr[$i][0]); //$arr[$i][1]表示第$i+1个分类的id的值.进行递归,也就是把自己的id作为f_id参数把自己的子类 ...
- Php xml 目录,PHP-PHP+xml的无限分类树目录的方法?
无限分类树的代码有很多,下面是个示例: /** by lenush; */ class Tree { var $data = array(); var $child = array(-1=>ar ...
- php 分类代码,php无限分类的图文代码介绍
无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类: 比如一棵树,从一根树干开始,分出多个树枝,而这些树枝又分出其他的分支,理论上是可以无限分裂下 ...
- php分类程序,PHP无限分类实现程序_PHP教程
1.数据库通过设置父类ID来进行唯一索引,然后使用函数的递归调用实现无限分类:2.数据库设计通过特定格式进行排列,然后使用mysql查询关键函数:concat.程序实现比较简单 首先我们假设有这样的一 ...
- 左右值无限分类实现算法
转:左右值无限分类实现算法 左右值无限分类实现算法 一.引言 产品分类,多级的树状结构的论坛,邮件列表等许多地方我们都会遇到这样的问题:如何存储多级结构的数据?在PHP的应用中,提供后台数据存储的通常 ...
最新文章
- linux 一块网卡两个ip,Linux 一块网卡配置多个IP的方法
- python 连 mongodb
- Debug enterprise search menu
- 面向对象上机题-迭归算法
- 世界机器人冠军王宇航_★​身边的榜样,为你喝彩:我校学子摘冠第七届河南省VEX U机器人挑战赛...
- Method-Swizzling实战-实现iOS原生网络请求性能采集
- hdu 1698 Just a Hook 线段树区间更新
- Python: 自定义类对象序列化为Json串
- 吴恩达机器学习作业Python实现(七):K-means和PCA主成分分析
- Docker最新超详细版教程通俗易懂(基础版)
- 水果销售管理系统课程设计报告
- Unable to import maven project: See logs for details
- Android开发获取连接的WIFI名称
- 四.运行时数据区-本地方法栈(Native Method Stack)-堆-方法区
- socket技术路线_呐,这不就是你要的C++后台开发学习路线吗?
- Linux虚机 下给用户调整安装JDK版本
- 手机录屏视频用ffmpeg进行视频截取以及旋转
- M1芯片MacBook通过Docker安装Kali
- 正则表达式(附匹配手机号和HTML标签)
- unplugin-auto-import的配置和eslint报错解决