码迷,mamicode.com
首页 > Web开发 > 详细

PHP无限极分类详谈

时间:2016-04-06 23:03:04      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:

当你学习php无限极分类的时候,大家都觉得一个字“难”我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究。

   到网上一搜php无限极分类,很多,但好多都是一个,并且,写的很乱,代码很多,让我们怎么学习嘛,那些都不靠谱,还是自己捣鼓捣鼓无限极分类了。

比如一个category表:有id, name, pid, sort 就这四个简单的字段,不要太复杂了。

id    name          pid      sort
1     PHP           0       1
2     Javascript       0        2
3     MySQL          0       3
4     PHP类          1       1
5     smarty         1        2
6     私有方法        4        1
7     jQuery         2        1


代码:category.class.php

class Category {
      static public function sortOut($cate,$pid=0,$level=0,$html=‘--‘){
               $tree = array();
               foreach($cate as $v){
                       if($v[‘id‘] == $pid){
                               $v[‘level‘] = $level + 1;
                               $v[‘html‘] = str_repeat($html, $level);
                               $tree[] = $v;
                               $tree = array_merge($tree, self::sortOut($cate,$v[‘id‘],$level+1,$html));
                       }
               }
               return $tree;
      }
}


这里的$cate是查询上面表获取的一个二维数组:这里就不写了

下面是效果:

id    name              pid   level     sort
1     PHP              0      1     1
4       --php类          1      2     1
6       ----私有方法        4      3      1
5       --smarty          1      2     2
2     Javascript           0      1     2
7       --php类          2       2     1
3     MySQL              0      1       3



到此,我们就实现了最简单的php无限极分类了,这个在工作中用的很多的。

----------------------------------------------

好像不需要array_merge

function tree(&$list,$pid=0,$level=0,$html=‘--‘){
    static $tree = array();
    foreach($list as $v){
        if($v[‘pid‘] == $pid){
            $v[‘sort‘] = $level;
             $v[‘html‘] = str_repeat($html,$level);
            $tree[] = $v;
            tree($list,$v[‘id‘],$level+1);
        } 
    }
    return $tree;
}

PHP无限极分类详谈

标签:

原文地址:http://www.cnblogs.com/wenhainan/p/5361445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!