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文件代码内容如下:

  1. public function indexAction() {
  2.  
  3. $citys = array(
  4. array('city_id'=>1, 'city_name'=>'北京', 'pid'=>0),
  5. array('city_id'=>2, 'city_name'=>'上海', 'pid'=>0),
  6. array('city_id'=>3, 'city_name'=>'海淀区', 'pid'=>1),
  7. array('city_id'=>4, 'city_name'=>'浦东新区', 'pid'=>2),
  8. );
  9.  
  10. $treeObj = $this->instance('Tree');
  11. $treeObj->setKeyName('city_id', 'city_name', 'pid');
  12.  
  13. $data = $treeObj->getTree($citys, 0);
  14.  
  15. $this->dump($data);
  16. }

输出结果为:

  1. Array
  2. (
  3. [1] => Array
  4. (
  5. [city_id] => 1
  6. [city_name] => 北京
  7. [child] => Array
  8. (
  9. [3] => Array
  10. (
  11. [city_id] => 3
  12. [city_name] => 海淀区
  13. [child] => Array
  14. (
  15. )
  16. )
  17. )
  18. )
  19.  
  20. [2] => Array
  21. (
  22. [city_id] => 2
  23. [city_name] => 上海
  24. [child] => Array
  25. (
  26. [4] => Array
  27. (
  28. [city_id] => 4
  29. [city_name] => 浦东新区
  30. [child] => Array
  31. (
  32. )
  33. )
  34. )
  35. )
  36. )

原文: http://www.doitphp.com/index/documentation/?articleid=43