首页 >后端开发 >php教程 >之将分类按级别输出实例

之将分类按级别输出实例

小云云
小云云原创
2018-03-16 13:50:131213浏览

本文主要和大家分享Thinkphp递归处理之将分类按级别输出实例,希望能帮助到大家。

1.一般在数据库中存储分类,分类之间的关系用parent_id来标识。在开发中有时需要根据分类的级别,展示分类,如下图:

使用递归方法,源代码如下:

  1. /** 
       *  
       * @param array $list  为一个二维数组,存放着所有的分类,包含的字段为(分类id,分类名,parent_id) 
       * @param number $parent_id 
       * @param number $level 
       * @return Ambigous <multitype:, number> 
       */  
      function find_level($list,$parent_id=0,$level=1){  
          foreach($list as $l){  
              if($l[&#39;parent_id&#39;]==$parent_id){  
                  $l[&#39;level&#39;]=$level;  
                  $arr[]=$l;  
                  $child=$this->find_level($list,$l[&#39;cat_id&#39;],$level+1);  
                  if(is_array($child)){  
                      $arr=array_merge($arr,$child);  
                  }  
              }  
          }  
          return $arr;  
      }

在使用时,根据实际情况使用find_level($list)  或者 $this->find_level($list) 就可以了

$list=M(&#39;category&#39;)->field(&#39;cat_id,cat_name,parent_id&#39;)->select();  
$list=$this->find_level($list);  
$this->list=$list;  
$this->display();


前台文件显示代码

  1. <table>  
    <foreach name="list" item="vo">  
        <tr>  
            <td>  
                <for start="1" end="$vo[&#39;level&#39;]">  
                          
                </for>  
                {$vo.cat_name}<br/>  
            </td>  
        </tr>  
    </foreach>  
    </table>

这里语法使用的是Thinkphp

以上是之将分类按级别输出实例的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn