6.17 Tree(无限分类)使用说明

DoitPHP扩展类Tree(无限分类),用于处理无限分类树,电子商务网站经常用。如果你连“无限分类”的概念还不清楚,请先去google上百度一下,或者去百度google一下。

类方法使用说明:

1、setKeyName($nodeId = 'id', $nodeName = 'name', $nodeParentId = 'pid', $nodeChildName = 'child')

设置分类树数组的Key,即节点数组的字段名(初始化配置)。

参数说明:
$nodeId : 分类树数组key的节点Id
$nodeName : 分类树数组key的节点名称
$nodeParentId : 分类树数组key的分节点Id
$nodeChildName : 分类树数组key的子节点Id

2、getTree($data, $parentId = 0)

获取无限分类树。

参数说明:
$data : 待处理的数组
$parentId : 父ID

举例说明:

例一、获取城区分类列表

Controller文件代码内容如下:

public function indexAction() {

$citys = array(
array('city_id'=>1, 'city_name'=>'北京', 'pid'=>0),
array('city_id'=>2, 'city_name'=>'上海', 'pid'=>0),
array('city_id'=>3, 'city_name'=>'海淀区', 'pid'=>1),
array('city_id'=>4, 'city_name'=>'浦东新区', 'pid'=>2),
);

$treeObj = $this->instance('Tree');
$treeObj->setKeyName('city_id', 'city_name', 'pid');

$data = $treeObj->getTree($citys, 0);

$this->dump($data);
}

输出结果为:

Array
(
[1] => Array
(
[city_id] => 1
[city_name] => 北京
[child] => Array
(
[3] => Array
(
[city_id] => 3
[city_name] => 海淀区
[child] => Array
(
)
)
)
)

[2] => Array
(
[city_id] => 2
[city_name] => 上海
[child] => Array
(
[4] => Array
(
[city_id] => 4
[city_name] => 浦东新区
[child] => Array
(
)
)
)
)
)