一个好用的php 实现无限分类的方法
来源:互联网 发布:数据行情是什么意思 编辑:程序博客网 时间:2024/04/30 02:00
效果:
计算机操作系统
|-Linux 系统
|–Linux相关网站
|—Linuxpig.com
|—Linux.org
|-Windows 系统
探险
|-52risk.com
数据的存储结构是这样的:
id,pid,name
解释:
id为自身编号,pid为父分类的编号(如果根则为0),name 为分类名称
无限分类的思想:
也就是用一个数组来表示一个树形的结构的方法,基本思路是结果数组 tree 中,所有根元素放到 tree[0] 中。二级栏目(根元素的子)放到 tree[1] 中,第n层次的元素的子元素放到 tree[n] 当中。
具体实现:
<?php
/**
* @author: huliang
* @description: 无限分类示例
**/
header('Content-type: text/html; charset=gb2312');
//模拟数据格式,实际应用中可能数据来自于数据库
$array[] = array("id"=>1,"pid"=>0,"name"=>"计算机操作系统");
$array[] = array("id"=>2,"pid"=>0,"name"=>"探险");
$array[] = array("id"=>3,"pid"=>1,"name"=>"Linux 系统");
$array[] = array("id"=>4,"pid"=>1,"name"=>"Windows 系统");
$array[] = array("id"=>5,"pid"=>3,"name"=>"Linux相关网站");
$array[] = array("id"=>6,"pid"=>5,"name"=>"<a href='http://linuxpig.com' target='_blank'>Linuxpig.com</a>");
$array[] = array("id"=>7,"pid"=>5,"name"=>"<a href='http://linux.org' target='_blank'>Linux.org</a>");
$array[] = array("id"=>8,"pid"=>2,"name"=>"<a href='http://52risk.com' target='_blank'>52risk.com</a>");
showCategory($array);
function showCategory($array){
$tree = array();
if( $array ){
foreach ( $array as $v ){
$pid = $v['pid'];
$list = @$tree[$pid] ?$tree[$pid] : array();
array_push( $list, $v );
$tree[$pid] = $list;
}
}
//遍历输出根分类
foreach($tree[0] as $k=>$v)
{
echo "$v[name]<br />";
//遍历输出根分类相应的子分类
if($tree[$v['id']]) drawTree($tree[$v['id']],$tree,0);
echo "<div style='height:10px;'></div>";
}
}
function drawTree($arr,$tree,$level)
{
$level++;
$prefix = str_pad("|",$level+1,'-',STR_PAD_RIGHT);
foreach($arr as $k2=>$v2)
{
echo "$prefix$v2[name]<br />";
if(isset($tree[$v2['id']])) drawTree($tree[$v2['id']],$tree,$level);
}
}
?>
具体项目中可能样式和数据来源需要调整,有什么问题联系我一起研究。
- 一个好用的php 实现无限分类的方法
- php 无限分类的实现
- 用递归的方法实现无限分类
- php+mysql数据库实现无限分类的方法
- 实现PHP+Mysql无限分类的方法汇总
- PHP + MySQL 实现无限分类的2种方法
- 【php】php递归实现的无限分类
- 分享一个牛逼的PHP无限极分类生成树方法,巧用引用
- php+mysql实现的无限极分类
- (收藏)可以用php实现无限分类的源码
- php 用递归实现的无限级别分类
- 无限分类的ASP实现方法
- 一个牛逼的php无限极分类生成树的方法
- PHP无限级分类简单实现方法
- php无限级分类实现方法分析
- php无限极分类实现方法
- 无限分类的程序,php
- PHP无限分类的原理
- 关于·nowrap与width
- Java编程能力强化(2)——搜索解决方案类问题的通用解法
- 斯坦福大学开放课程:编程方法.03/第三课练习:karel 算数(将未知数量beeper变为X倍)
- 【转】Unparsed aapt error(s)! Check the console for output
- void LDE32(PVOID pInsAddress,DWORD* pInsLength)
- 一个好用的php 实现无限分类的方法
- 基于 Linux 系统的Nagios网络管理模块的实现
- 如何伪装Linux系统 给黑客设置系统假象
- 优化PHP代码的40条建议
- php生成随机密码的几种方法
- PHP生成随机密码的三种方法
- 三款破解PHP加密程序工具软件
- 谁能帮我找到无线上网卡的驱动要能在Window ce 下运行的
- 7z LZMA C SDK 移植备忘