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
                                (
                                )
                        )
                )
        )
)