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‘));
}
时间: 2024-10-21 02:34:26

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

递归获取当前节点全部指定类型的子节点

在线预览 方法 使用nodeType判断类型,在allChildNodes方法内建立递归函数将allCN封装在方法内. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> p{ color: red; } span{ color: blue; }

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

递归获取所有的子分类的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

获取 id parentId 递归获取所有

Declare @Id Int Set @Id = 5;    ---在此修改父节点  With RootNodeCTE(Id,ParentId)  As (  Select Id,ParentId From BOM Where ParentId In (@Id)  Union All Select BOM.Id,BOM.ParentId From RootNodeCTE  Inner Join BOM On RootNodeCTE.Id = BOM.ParentId  )  Select * 

通用多层json递归解析,根据json层级关系直接使用: 基节点.子节点.孙节点。

package com.matol.utils; import java.io.InputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.codehaus.jackson.map.Obje

递归获取指定盘符下的所有文件及文件夹

 /// <summary>         /// 递归获取指定盘符下的所有文件及文件夹         /// 存在部分文件夹访问权限问题         /// </summary>         /// <param name="path">string path = @"G:\"; </param>         /// <param name="filter">strin

swing jtree 添加了复选框的树,利用了递归获取选中的果实

原文:swing jtree 添加了复选框的树,利用了递归获取选中的果实 源代码下载地址:http://www.zuidaima.com/share/1553270755478528.htm 矿泉水2013-11-05 16:11:37 swing jtree 添加了复选框的树,利用了递归获取选中的果实

Java 递归获取一个路径下的所有文件,文件夹名称

package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String[] args) { //路径 这里写一个路径进去 String path="F:\\QQ文档"; //调用方法 getFiles(path); } /** * 递归获取某路径下的所有文件,文件夹,并输出 */ public static void getFiles(String path

(3).递归获取所有页码

# -*- coding: utf-8 -*- import scrapy class GetChoutiSpider(scrapy.Spider): name = 'get_chouti' allowed_domains = ['chouti.com'] start_urls = ['https://dig.chouti.com/'] def parse(self, response): # 在子子孙孙中找到所有id="dig_lcpage"的div标签 # 在对应的div标签中找到

编写一个通用递归获取树形结构对象集合的方法

/// <summary> /// 通用递归获取树状子节点信息 /// </summary> /// <param name="item"></param> /// <param name="id"></param> /// <returns></returns> private List<T> getTreeListByPid<T, F>(Lis