时间:2021-07-01 10:21:17 帮助过:3人阅读
1.一般在数据库中存储分类,分类之间的关系用parent_id来标识。在开发中有时需要根据分类的级别,展示分类,如下图:

使用递归方法,源代码如下:
/** 
   *  
   * @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['parent_id']==$parent_id){  
              $l['level']=$level;  
              $arr[]=$l;  
              $child=$this->find_level($list,$l['cat_id'],$level+1);  
              if(is_array($child)){  
                  $arr=array_merge($arr,$child);  
              }  
          }  
      }  
      return $arr;  
  }在使用时,根据实际情况使用find_level($list) 或者 $this->find_level($list) 就可以了
$list=M('category')->field('cat_id,cat_name,parent_id')->select();  
$list=$this->find_level($list);  
$this->list=$list;  
$this->display();前台文件显示代码
<table>  
<foreach name="list" item="vo">  
    <tr>  
        <td>  
            <for start="1" end="$vo['level']">  
                      
            </for>  
            {$vo.cat_name}<br/>  
        </td>  
    </tr>  
</foreach>  
</table>这里语法使用的是Thinkphp
以上就是之将分类按级别输出实例的详细内容,更多请关注Gxl网其它相关文章!