• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP中实现无限级分类

php 搞代码 3年前 (2022-01-22) 15次浏览 已收录 0个评论

这篇文章介绍的内容是关于PHP中实用无限级分类 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

在我们工作中,无限级分类应用非常多,其实其思想并不难,无非运用递归思想自己调用自己罢了。下面就来看看我写的无限级分类函数:

header("content-type:text/html;charset=utf-8");//测试数组$arr=array(    array('id'=>2,'name'=>'分类2','parent_id'=>1),    array('id'=>9,'name'=>'分类9','parent_id'=>8),    array('id'=>1,'name'=>'分类1','parent_id'=>0),    array('id'=>7,'name'=>'分类7','parent_id'=>0),    array('id'=>3,'name'=>'分类3','parent_id'=>2),    array('id'=>4,'name'=>'分类4','parent_id'=>0),    array('id'=>6,'name'=>'分类6','parent_id'=>5),    array('id'=>8,'name'=>'分类8','parent_id'=>7),    array('id'=>5,'name'=>'分类5','parent_id'=>4));/** * 已知子类id 得到父类树形结构 * @param  [type]  $data    [要查询的数组] * @param  [type]  $id      [子类id] * @param  integer $level   [缩进系数] * @param  boolean $isClear [调用时为true,多次调用不相互叠加] * @return [type]           [返回结果树形结构] */function getParent($data,$id,$level=0,$is_Clear=false){    static $_rec = array();    if ($is_Clear == true) {        $_rec = array();    }    foreach ($data as $k=>$v) {        if ( $v['id'] == $id) {        $_rec[] =$v;                  // if ($v['parent_id'] != 0) {                getParent($data,$v['parent_id']);         // }        }    }     $rec = array_reverse($_rec);     for ($i=0; $i     $rec[$i]['level']=$level;     $level++;     }     //把自己拿出来,自己不属于父类     array_pop($rec);     return $rec;}/** * 已知父类id找  得到子类树形结构 * @param  [type]  $data    [要查询的数组] * @param  [type]  $id      [父类id] * @param  integer $level   [缩进系数] * @param  boolean $isClear [调用时为true,多次调用不相互叠加] * @return [type]           [返回结果树形结构] */function getChilds($data,$id,$level=0,$isClear=false){    static $rec = [];    if ($isClear == true) {        $rec =[];    }    foreach ($data as $k => $v) {        if ($v['parent_id'] == $id) {            $v['level']=$level;            $rec[] =$v;            getChilds($data,$v['id'],++$level);        }    }    return $rec;}/** * 已知父类id,得到子类id树形结构;区别在于$row[]=$v['id'],只赋值id; * getParent(),可改写成getParentid(); * @param  [type]  $data [description] * @param  [type]  $id   [description] * @param  boolean $col  [description] * @return [type]        [description] */   function getChildsId($data,$id,$col=false){       static $row=array();     <mark style="color:transparent">本%文来源gaodaimacom搞#^代%!码网@</mark>搞代gaodaima码  if($col)           $row=array();           foreach ($data as $k => $v) {               if($v['parent_id'] ==$id){                   $row[]=$v['id'];                   getChildsId($data,$v['id']);               }           }       return $row;   }/** * 已知父类id,得到树形结构; * 结合getParent(),若不弹出自己,即已知子类id,得到树形结构 * @param  [type]  $data      [description] * @param  [type]  $parent_id [description] * @param  integer $level     [description] * @param  boolean $col       [description] * @return [type]             [description] */function tree($data,$parent_id,$level=0,$col=false){    static $res=array();        if($col) $res=array();    foreach ($data as $k => $v) {            if($v['parent_id'] == $parent_id){                $v['level']=$level;                      $res[]=$v;            tree($data,$v['id'],$level+1);        }    }     return $res;}

希望大家留下宝贵的意见,来完善和丰富我的博客,欢迎交流学习。

相关推荐:

PHP无限极分类

如何创建无限极分类树型结构

php无需递归实现无限极分类树

以上就是PHP中实现无限级分类的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP中实现无限级分类
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址