zoukankan      html  css  js  c++  java
  • 无限级分类

    public function getlist($pid = 0, &$result=array(), $spac = 0){
    $spac += 2;
    $list = M('liuyan')->where('pid='.$pid)->select();
    foreach($list as $val){
    $val['content'] = str_repeat('',$spac).$val['content'];
    $result[] = $val;
    $this->getlist($val['id'], $result, $spac);
    }
    return $result;
    }
     
    function genTree($items,$id='id',$pid='pid',$son = 'children'){
        $tree = array(); //格式化的树
        $tmpMap = array();  //临时扁平数据
         
        foreach ($items as $item) {
            $tmpMap[$item[$id]] = $item;
        }
         
        foreach ($items as $item) {
            if (isset($tmpMap[$item[$pid]])) {
                $tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
            } else {
                $tree[] = &$tmpMap[$item[$id]];
            }
        }
        unset($tmpMap);
        return $tree;
    }
     
    $items1 = array(
            array('id' => 1, 'pid' => 0, 'name' => '一级11' ),
            array('id' => 11, 'pid' => 0, 'name' => '一级12' ),
            array('id' => 2, 'pid' => 1, 'name' => '二级21' ),
            array('id' => 10, 'pid' => 11, 'name' => '二级22' ),
            array('id' => 3, 'pid' => 1, 'name' => '二级23' ),
            array('id' => 12, 'pid' => 11, 'name' => '二级24' ),
            array('id' => 9, 'pid' => 1, 'name' => '二级25' ),
            array('id' => 14, 'pid' => 1, 'name' => '二级26' ),
            array('id' => 4, 'pid' => 9, 'name' => '三级31' ),
            array('id' => 6, 'pid' => 9, 'name' => '三级32' ),
            array('id' => 7, 'pid' => 4, 'name' => '四级41' ),
            array('id' => 8, 'pid' => 4, 'name' => '四级42' ),
            array('id' => 5, 'pid' => 4, 'name' => '四级43' ),
            array('id' => 13, 'pid' => 4, 'name' => '四级44' ),
            array('id' => 15, 'pid' => 8, 'name' => '五级51' ),
            array('id' => 16, 'pid' => 8, 'name' => '五级52' ),
            array('id' => 17, 'pid' => 8, 'name' => '五级53' ),
            array('id' => 18, 'pid' => 16, 'name' => '六级64' ),
    );
    var_dump(genTree($items1));
  • 相关阅读:
    算法与数据结构(二):队列
    算法与数据结构(二):链表
    算法与数据结构(一):时间复杂度与空间复杂度
    2018总结与2019规划
    VC++ IPv6的支持
    从项目中学习HTML+CSS
    xampp 中 mysql的相关配置
    yum卸载遇到的问题--待解决
    RHEL 6.5----heartbeat
    RHEL 6.5-----MFS
  • 原文地址:https://www.cnblogs.com/ilys/p/5474595.html
Copyright © 2011-2022 走看看