标签:array [] 基于 level each lis ati func ring
/** 
     * 把返回的数据集转换成Tree 
     * @access public 
     * @param array $list 要转换的数据集 
     * @param string $pid parent标记字段 
     * @param string $level level标记字段 
     * @return array 
     */  
    public static function list_to_tree($list, $pk=‘cat_id‘,$pid = ‘parent_id‘,$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;
    }
标签:array [] 基于 level each lis ati func ring
原文地址:http://www.cnblogs.com/liuxd/p/6747883.html