// 处理无极栏目排序 protected function findChild($arr){ static $tree = array(); foreach ($arr as $key=>$val){ $tree[] = $val; if (isset($val['_child'])){ $this -> findChild($val['_child']); } } return $tree; } /** * 无限分级 * @access public * @param array $list 数据库里取得的结果集 地址引用 * @param integer $pk 默认id的值 * @param integer $pid 父级id的值 * @param array $child 子类数组名称 * @param integer $root 默认id的值是从0开始 */ function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) { // 创建Tree $tree = array(); if(is_array($list)) { // 创建基于主键的数组引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] =& $list[$key]; } foreach ($list as $key => $data) { // 判断是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] =& $list[$key]; }else{ if (isset($refer[$parentId])) { $parent =& $refer[$parentId]; $parent[$child][] =& $list[$key]; } } } } return $tree; }
<volist name="qtable" id="v"> <if condition="$v.DeepPath == 0 ">{$v.Name} <else /><for start="1" end="$v.DeepPath"> </for> ├ {$v.Name}</if> </volist>