Think PHP递归获取所有的子分类的ID (删除当前及子分类)

Posted 心雨星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Think PHP递归获取所有的子分类的ID (删除当前及子分类)相关的知识,希望对你有一定的参考价值。

 

递归获取所有的子分类的ID:

技术图片
//递归获取所有的子分类的ID function get_all_child($array,$id){ $arr = array(); foreach($array as $v){ if($v[‘pid‘] == $id){ $arr[] = $v[‘id‘]; $arr = array_merge($arr,get_all_child($array,$v[‘id‘]));
        };
    }; return $arr;
}
技术图片

在进行删除栏目的时候,需要删除当前栏目下的所有子栏目:

技术图片
//删除分类 public function delCate(){ $get = I(‘get.pid‘); $cateId = M(‘category‘)->field(array(‘id‘,‘pid‘))->select(); $delId = get_all_child($cateId,$get); $delId[] = $get; $where = array( ‘id‘ => array(‘IN‘,$delId)
    ); if(!M(‘category‘)->where($where)->delete()){ $this->error(‘删除失败‘);
    }; $this->success(‘删除成功‘,U(‘index‘));
}
技术图片

 

以上是关于Think PHP递归获取所有的子分类的ID (删除当前及子分类)的主要内容,如果未能解决你的问题,请参考以下文章

问答项目---删除分类的时删除其子分类

PHP原生递归实现无限级分类树状展示数据

php 怎么获取一个部门下的子部门 子部门下的部门 一直下去找到所有部门

PHP 根据子ID递归获取父级ID,实现逐级分类导航效果

ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)

ecshop怎么让分类页显示当前顶级分类的所有子分类?