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);

      

  • 相关阅读:
    个人总结08
    npm快速入门
    Activity简介
    SELinux
    正则表达式学习笔记(二)表达式的匹配原理
    git学习笔记(一)
    使用VSFTPD传输文件
    正则表达式学习笔记(一)正则表达式入门
    Linux基础(一)磁盘分区
    Shell脚本笔记(九)数组
  • 原文地址:https://www.cnblogs.com/zhongJaywang/p/5712923.html
Copyright © 2011-2022 走看看