zoukankan      html  css  js  c++  java
  • PHP递归实现层级树状展现数据

      树状数据展现很常用,今天学习了PHP的递归,也来总结总结!

      PHP代码:

      

    function _getTreeList_custom1($data,$parent_id,$depth)
        {
            $return_array = array();
            
            if(is_array($data) && !empty($data))
            {
                foreach($data as $key => $info)
                {
                    if($info['parent_id'] == $parent_id)
                    {
                        $info['depth'] = $depth;
                        
                        $temp_info = $info;
                        
                        foreach($data as $s_info)
                        {
                            if($s_info['parent_id'] == $info['id'])
                            {
                                $temp_info['sub'] = _getTreeList_custom1($data, $info['id'], $depth+1);
                                break;
                            }
                        }
                        
                        $return_array[] = $temp_info;
                    }
                }
            }
            
            return $return_array;
        }
        
        function _getTreeList_custom2($data,$parent_id,$depth)
        {
            $return_array = array();
            
            if(is_array($data) && !empty($data))
            {
                foreach($data as $key => $info)
                {
                    if($info['parent_id'] == $parent_id)
                    {
                        $info['depth'] = $depth;
                        $temp_info = $info;
                        unset($data[$key]);
                        $sub_list = _getTreeList_custom2($data,$info['id'],$depth+1);
                        
                        if(!empty($sub_list))
                        {
                            $temp_info['sub'] = $sub_list;
                        }
                        
                        $return_array[] = $temp_info;
                    }
                        
                }
                
            }
            
            return $return_array;
        }
    

      

      前台显示:

      

    function showTreeOnHtml($treeList)
        {
            echo '<ul>';
            foreach($treeList as $key => $treeInfo)
            {
                echo '<li>';
                echo $treeInfo['name'];
                if(!empty($treeInfo['sub']))
                {
                    showTreeOnHtml($treeInfo['sub']);
                }
                echo '</li>';
            }
            echo '<ul>';
                
        }
    showTreeOnHtml($treeList);

      

  • 相关阅读:
    [ZJOI2010]基站选址
    [SDOI2008]Sue的小球
    访问计划
    奥义商店
    codeforces 809E Surprise me!
    codeforces 888G Xor-MST
    [HAOI2015]数字串拆分
    小奇分糖果
    小奇的花园
    BZOJ4711 小奇挖矿
  • 原文地址:https://www.cnblogs.com/zhongJaywang/p/5712923.html
Copyright © 2011-2022 走看看