1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace common\helpers;
- class Tree
- {
-
- public static function build($list, $pk='id', $pid = 'pid', $child = 'children', $root = 0) {
-
- $tree = array();
- if(is_array($list)) {
-
- $refer = array();
- foreach ($list as $key => $data) {
- $refer[$data[$pk]] =& $list[$key];
- }
- foreach ($list as $key => $data) {
-
- $parentId = $data[$pid];
- if ($root == $parentId) {
- $tree[] =& $list[$key];
- }else{
- if (isset($refer[$parentId])) {
- $parent =& $refer[$parentId];
- $parent[$child][] =& $list[$key];
- }
- }
- }
- }
- return $tree;
- }
- }
|