PHP类:如何快速建立树形结构清单
在开发中经常需要用到树形数据,比如无限多级分类,就是典型的树形结构。在web开发中,前端需要实现 tree树 。 这些tree树在初始化的时候,通常需要 tree描述的json数组 。 抽象类快捷灵活高效地生成tree结构数组的组装,无需关心递归的一些东西,对于新手非常友好。除此之外,还可以以xml, html树形结构 输出,封装得非常灵活。这里面的算法,用到了递归思想,为了简化开发过程,本篇介绍PHPTree,可以快速和ExtJS、zTree等前端框架整合使用。
树形结构PHP类用法与实例
<?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);
生成的数据就是 树形结构 了,可以 结合extjs等前端框架 来使用了
如果不需要使用前端框架,只是用html输出,可以使用下面的方法:
$r = phptree::maketreeforhtml($data);
关于 数据库的设计 ,只需要保证包含 id 和 parent_id 字段即可,其他字段可以自行添加,不会影响数据生成。parent_id是父级id,如果是一级分类,就设为 0 。当然,字段也是可以配置的。请继续往下看,我将介绍一些进阶的使用方法。
树形结构PHP类HTML输出例子
$data = array(
array(
'id' => 1,
'name' => '用户管理',
'parent_id' => 0
),
array(
'id' => 2,
'name' => '用户列表',
'parent_id' => 1
),
array(
'id' => 3,
'name' => '权限管理',
'parent_id' => 1
),
array(
'id' => 4,
'name' => '文章管理',
'parent_id' => 0
),
array(
'id' => 5,
'name' => '新闻',
'parent_id' => 4
),
array(
'id' => 6,
'name' => '国内新闻',
'parent_id' => 5
)
);
$r = PHPTree::makeTreeForHtml($data);
echo '<h1>PHPTree树形结构</h1>';
echo '<select style="width:300px;">';
foreach($r as $item){
echo '<option>';
echo str_repeat('......',$item['level']);
echo $item['name'];
echo '</option>';
}
echo '</select>';
树形结构PHP类完整源代码
以下为嗨网HiGrid.net 整理的读取 PHP类 树形结构完整源代码 ,请自行拷贝使用。