- public
- function getlist($pid = 0, &$result = array(), $spac = 0) {
- $spac += 2;
- $list = M('liuyan') ->where('pid='.$pid) ->select();
- foreach($list as $val) {
- $val['content'] = str_repeat('', $spac).$val['content'];
- $result[] = $val;
- $this ->getlist($val['id'], $result, $spac);
- }
- return $result;
- }
- function genTree($items,$id='id',$pid='pid',$son ='children'){
- $tree =array();// 格式化的树
- $tmpMap =array();
- // 临时扁平数据
- foreach ($items as $item) {
- $tmpMap[$item[$id]] =$item;
- }
- foreach ($items as $item) {
- if (isset($tmpMap[$item[$pid]])) {
- $tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
- }else {
- $tree[] = &$tmpMap[$item[$id]];
- }
- }
- unset($tmpMap);
- return $tree;
- }
- $items1 =array(
- array('id' => 1,'pid' => 0,'name' =>'一级 11' ),
- array('id' => 11,'pid' => 0,'name' =>'一级 12' ),
- array('id' => 2,'pid' => 1,'name' =>'二级 21' ),
- array('id' => 10,'pid' => 11,'name' =>'二级 22' ),
- array('id' => 3,'pid' => 1,'name' =>'二级 23' ),
- array('id' => 12,'pid' => 11,'name' =>'二级 24' ),
- array('id' => 9,'pid' => 1,'name' =>'二级 25' ),
- array('id' => 14,'pid' => 1,'name' =>'二级 26' ),
- array('id' => 4,'pid' => 9,'name' =>'三级 31' ),
- array('id' => 6,'pid' => 9,'name' =>'三级 32' ),
- array('id' => 7,'pid' => 4,'name' =>'四级 41' ),
- array('id' => 8,'pid' => 4,'name' =>'四级 42' ),
- array('id' => 5,'pid' => 4,'name' =>'四级 43' ),
- array('id' => 13,'pid' => 4,'name' =>'四级 44' ),
- array('id' => 15,'pid' => 8,'name' =>'五级 51' ),
- array('id' => 16,'pid' => 8,'name' =>'五级 52' ),
- array('id' => 17,'pid' => 8,'name' =>'五级 53' ),
- array('id' => 18,'pid' => 16,'name' =>'六级 64' ),
- );
- var_dump(genTree($items1));
来源: https://www.php1.cn/detail/php-140a0c874f.html