zoukankan      html  css  js  c++  java
  • 递归树

    $arr =     array(
              1 => array('id'=>'1','parentid'=>0,'name'=>'一级栏目一'),
              3 => array('id'=>'3','parentid'=>1,'name'=>'二级栏目一'),
              4 => array('id'=>'4','parentid'=>1,'name'=>'二级栏目二'),
              6 => array('id'=>'6','parentid'=>3,'name'=>'三级栏目一'),
              7 => array('id'=>'7','parentid'=>3,'name'=>'三级栏目二'),
              2 => array('id'=>'2','parentid'=>0,'name'=>'一级栏目二'),
              5 => array('id'=>'5','parentid'=>2,'name'=>'二级栏目三')
              );
    //生成树
    function create($pid, $arr)
    {
        $ret = array();
        foreach($arr as $v)
        {
            if(isset($v['parentid']) && $v['parentid']==$pid)
            {
                $subret = array();
                $subret['id']  = $v['id'];
                $subret['name'] = $v['name'];
                $subret['children'] = create($v['id'], $arr);
                array_push($ret,$subret);
            }
        }
        return $ret;
    }
    $arr_tree = create(0,$arr);
    
    
    
    //输出树
    $i=1;
    function echotree($arr_tree, $i)
    {
        foreach($arr_tree as $k=>$v)
        {
            echo str_pad("",$i,"#").$v['name'].'<br/>';
            if(is_array($v['children'])){
                echotree($v['children'], $i+4);
                
            }
        }
    }
    
    echotree($arr_tree, $i);
    
    
  • 相关阅读:
    线程的等待与唤醒
    多线程start()与run()的区别
    Thread与Runnable
    关于i++和++i的一些见解
    Mysql优化(转)
    Java 注解
    Java 泛型(转)
    Java 中的CAS
    CAS ABA问题
    Java 线程池分析
  • 原文地址:https://www.cnblogs.com/siqi/p/2666976.html
Copyright © 2011-2022 走看看