无限级分类


无限极分类其实就是一个递归便利


1,查询所有数据

    <?php  
    namespace Home\Controller;  
    use Think\Controller;  
    class IndexController extends Controller {  
        //查询全部数据  
        public function index(){  
            //实例化model  
            $User=D('Address');  
            $arr = $User->sel_all();  
            //print_r($arr);die;  
            $this->assign('arr',$arr);  
            $this->display();  
        }  
      
    }  
      
    ?>  

2,递归便利数据

    <?php  
    namespace Home\Model;  
    use Think\Model;  
    class AddressModel extends Model{  
        //查询address表中所有数据  
        public function sel_all(){  
            $arr = $this->Table('address')->select();  
            return $this->list_level($arr,$pid=0,$level=0);  
        }  
        //递归遍历数据  
        public function list_level($arr,$pid=0,$level=0){  
            //定义一个静态数组  
            static $data = array();  
            foreach($arr as $k => $v){  
                if($v['pid'] == $pid){  
                    $v['level'] = $level;  
                    $data[] = $v;  
                    $this->list_level($arr,$v['id'],$level+1);  
                }  
            }  
            return $data;  
        }  
    }  

3,页面展示循环数据

    <!DOCTYPE html>  
    <html>  
    <head lang="en">  
        <meta charset="UTF-8">  
        <title></title>  
    </head>  
    <body>  
    <table border='1'>  
        <th>编号</th>  
        <th>地区</th>  
        <th>层级</th>  
        <foreach name='arr' item='v'>  
            <tr>  
                <td>{$v.id}</td>  
                <!--str_repeat('字符串','重复的次数');重复一个字符串-->  
                <td><?php echo str_repeat('----',$v['level']);?>{$v.name}</td>  
                <td>  
                    <if condition="$v['level'] eq 0">  
                        一级分类  
                        <elseif condition="$v['level'] eq 1"/>  
                        二级分类  
                        <else/>  
                        三级分类  
                    </if>  
                </td>  
            </tr>  
        </foreach>  
    </table>  
    </body>  
    </html>  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值