php 用递归实现的无限级别分类

php中文网
发布: 2016-06-23 13:52:41
原创
1216人浏览过

php
header("Content-type:text/html; charset=utf-8");
/**
 * 
 * @category contry_category 实现一个无限级别分类,类似种类的划分,常用在栏目导航
 * 
 */


/**
 +-------------------------------------------------------------------------------+
 |             id       name         类别id                                      |
 |              1       中国           0                                         |
 |              2       北京           1                                         |
 |              3       上海           1                                         |
 |              4       美国           0                                         |
 *              5       纽约           4                                         *
 *              6      华盛顿          4                                         *
 *              7    加州福尼亚        4                                         *
 +-------------------------------------------------------------------------------+
 * 
 *    类别id 为0的是顶级栏目
 *    类别id 为id相同的是所属分类
 */


class contry_category{
     public $i =-1;
     public function index($array){
         $this->i++;
         if($array[$this->i]['category_id']==0){
             echo "├".$array[$this->i]["name"]."
";
             for($j=0;$j                 if($array[$j]['category_id']==$array[$this->i]['id']){     //查看所属分类
                     echo "├─┴".$array[$j]["name"]."
";
                }
             }
         }
         foreach($array as $v){
             if($v['category_id']==0)
             $ary[]=$v['category_id'];        //获取几个顶级栏目,来确定递归几次
         }
         
         if($this->i               $this->index($array);            //递归
     }
}
$infos = array(array("id"=>1,'name'=>"中国","category_id"=>0),array("id"=>2,'name'=>"北京","category_id"=>1),array("id"=>3,'name'=>"上海","category_id"=>1),array("id"=>4,'name'=>"美国","category_id"=>0),array("id"=>5,'name'=>"纽约","category_id"=>4),array("id"=>6,'name'=>"华盛顿","category_id"=>4),array("id"=>7,'name'=>"加州福尼亚","category_id"=>4));
 
$obj =new contry_category();
$obj->index($infos);






/**
 * 打印出来的效果是这样
 *  ├中国
    ├─┴北京
    ├─┴上海
    ├美国
    ├─┴纽约
    ├─┴华盛顿
    ├─┴加州福尼亚
 */

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号