• 无限级分类


    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));
  • 相关阅读:
    循环语句 for , forin , forEach
    Haxe
    Haxe数据类型
    jango中间件的使用
    python的遍历模式
    python文件读写
    python3.5以上自带的虚拟环境在各种环境下的使用方法
    冒泡排序
    工厂方法模式
    redis 配置
  • 原文地址:https://www.cnblogs.com/ilys/p/5474595.html
Copyright © 2020-2023  润新知