再谈无极限分类实现思想实例


我相信对于PHP开发的同学多多少少都遇到过无极限分类的问题,或许你是在开发过程,或许你是在面试过程中。在这里我拿某个开源项目里面是如何实现无极限分类思想说说。

总体来说就是一个无极限遍历组合的过程,为了避免不知头不知尾同时能加强理解,可以先把无极限分类demo下载下来,里面包涵了一个sql文件和php文件,配到数据库同时修改一个php文件数据库配置.里面只做了获取无极限分类的一个效果.把所有分类存到一张表里面便可,一次性把分类取出来给合成数组,遍历数组每一条数据,判断其父类ID是否有上一级的ID号,此父类ID为父类数据对应存在表里的流水ID号,如父类ID为0,说明此类为最高分类.其实理解难点是在如何遍历那里,代码如下:

function get_list_category($array,$parentid=0,$level=0,$add=2)   

      $str_pad = $this->getnbsp($level);
      $newarray = array();
      $temp = array();
      foreach($array as $v)
{
      if($v['parent_id'] == $parentid)
   {
       $newarray[] = array(
             'cat_id' => $v['cat_id'],
             'cat_name' => $v['cat_name'],
             'keywords' => $v['keywords'],
             'description' => $v['description'],
             'parent_id' => $v['parent_id'],
             'sort_order' => $v['sort_order'],
             'str_pad' => $str_pad
                          );
       $temp = $this->get_list_category($array,$v['cat_id'],($level+$add));
       if($temp)
       {
              $newarray = array_merge($newarray, $temp);
       }
     }
     }
     return $newarray;
 }
, , ,

发表评论

7 + 7 = ?