php无限极分类实现方法

 

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

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

id   name         pid     sort
   PHP               1
   Javascript            2
   MySQL              3
   PHP类              1
   smarty              2
   私有方法             1
   jQuery              1

代码:category.class.php


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;

}

下面是效果:

图片.png

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


另一种实现思路 和上面一个意思

 function getAll($node_list,$parent_id=0,$leave=0){
         static $result;
         foreach ($node_list as $key => $val) {
             if($val['parent_id']==$parent_id){
                 $val['leave']=$leave;
                 $result[]=$val;
                 $this->getAll($node_list,$val['cat_id'],$leave+1);
             }
         }
         //print_r($result);die;
         return $result;
     }

前台处理:

    <?php foreach($list as $v){?>
          <option value="<?php echo $v['cat_id']?>"><?php echo str_repeat('&nbsp;--|',$v['leave'])?><?php echo $v['cat_name']?></option>
        <?php
        }
        ?>

实现效果:

图片.png

大家知道分类多了,递归效率也就低了,所以,有了下面的算法:预排序遍历树算法进行无限分类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值