首页 > 作文

PHPTree——php快速生成无限级分类

更新时间:2023-04-06 17:51:08 阅读: 评论:0

它就是phptree。

git地址:https://git.oschina.net/jium/phptree.git

或从www.887551.com下载

最简单的例子:

<?php require('phptree.class.php');//原始数据, 从数据库读出$data = array(array('id'=>1,'name'=>'book','parent_id'=>0),array('id'=>2,'name'=>'music','parent_id'=>0),array('id'=>3,'name'=>'book1','parent_id'=>1),array('id'=>4,'name'=>'book2','parent_id'=>3));$r = phptree::maketree($data);echo json_encode($r);?>

输出:

[
{
“id”: 1,
“name”: “book”,
“parent_id”: 0,
“expanded”: fal, //不展开子节点
“children”: [
{
“id”: 3,
“name”: “book1”,
“parent_id”: 1,
“expanded”: fal,
“children”: [
{
“id”: 4,
“name”: “book2”,
“parent_id”: 3,
“leaf”: true
}
]
}
]
},
{
“id”: 2,
“name”: “music”,
“parent_id”: 0,
“leaf”: true
}
]

生成的数据就是树形结构了,可以结合extjs等前端框架来使用了。git中包含了一个extjs的demo,大家可以参考。

演示:

如果不需要使用前端框架,只是用htmlh3c路由器怎么样输出,可以使用下面的方法:

$r = phptree::maketreeforhtml($data);

得到一个一维数组,用 level 字段来标识分类的层次:

array( array(  'id'=>1,  'name'=>'用户管理',  'parent_id'=>0,  'level'=>0 //一级分类 ), array(  'id'=>1,  'name'=>'用户列表',  'parent_id'=>1,  'level'=>1 //二级分类 ) ....);

输出为lect标签:

echo '<h1>phptree树形结构</h1>';echo '<lect style="width:300px;">';foreach($r as $item){echo '<option>';//根据所在的层次缩进echo str_repeat('......',$item['level']);echo $item['name'];echo '</option>';}echo '</lect>';

演示:

git中包含了一个输出html的demo,大家可以参考。

关于数据库的设计,只需要保证包含 id 和 parent_id 字段即可,其他字段可以自行添加,不会影响数据生成。parent_id是父级id,如果是一级分类,就设为 0 。当然,字段也是可以配置的。请继续往下看,我将介绍一些进阶的使用方法。

展开子节点:

phptree::maketree( $data, array( 'expanded' => true));

输出的数据为:

[
{
id:1,
name:’book1′,
expanded:true,//展开子节点
children:[

]红色诗歌朗诵大全
}
]

自定义主键和父键:

//数据库读出$data = array( array(  'order_id'=>1, //主键  'name'=>'book1',  'pid'=>0, //父键  ... ));phptree::m烤的成语aketree( $data, array( 'primary_key' => 'order_id', 'parent_key' => 'pid'));

输出的数据为:

[
{
order_id:1,
name:’book1′,
p街头篮球大前锋技能id:0,

}
]

maketreeforhtml 方法也支持配置主键和父键。

还有其他字段也可以自定义,但下面这些参数仅支持 maketree 方法:

$r = phptree::maketree($data, array( 'expanded_key' => 'expanded', 'children_key' => 'children', 'leaf_key'  => 'leaf'));

默认,这些字段的配置都是以extjs为参考四级各部分分值的,如果你使用ztree框架的话,这些字段就需要重新配置了。

ztree 是一款强大的国产树形框架,它还支持 简单json格式,是一维数据格式,实际上就不需要用到phptree了。当然,phptree输出的数据层次感清晰,ztree也是支持的。

本文发布于:2023-04-06 17:51:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/7f28f01cc50e64950f234af1da654c9e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHPTree——php快速生成无限级分类.doc

本文 PDF 下载地址:PHPTree——php快速生成无限级分类.pdf

标签:字段   数据   框架   节点
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图