PHP 循环删除无限分类子节点的实现代码

yipeiwu_com6年前PHP代码库

复制代码 代码如下:

<?php
    private  function _deleteSubNode($ids){

        $subNodes = array();
        $mod = D('Node');
        foreach (explode ( ',', $ids ) as $k){
            $res = $this->_getSubNode($k,$subNodes[$k],$mod);  //获取子节点
            if(!empty($res[0])){
                foreach($res as $k => $nid){
                    $mod->where('id = '.$nid)->delete();       //删除子节点
                }
            }
        }
        return ;
    }

    private function _getSubNode($id, &$arr,$mod){

         $condition = array ('pid' => array ('eq', $id ));
         $ret = $mod->where($condition)->getField('id');
         if(!empty($ret[0])){
             foreach ($ret as $k => $node){
                 $arr[] = $node['id'];
                 $this->_getSubNode($node['id'], $arr, $mod);
            }
         }
         return $arr;
    }

?>

相关文章

php cookie使用方法学习笔记分享

PHP setcookie() 函数向客户端发送一个 HTTP cookie。cookie 是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计...

php写入文件不覆盖的实例讲解

php写入文件不覆盖的实例讲解

file_put_contents():向文件中写入内容并且不覆盖之前的内容。 步骤: 1、新建文件 2、声明要写入内容的文件 3、这个文件的内容如图 4、file_get_con...

php中的观察者模式简单实例

观察者模式是设计模式中比较常见的一个模式,包含两个或者更多的互相交互的类。这一模式允许某个类观察另外一个类的状态,当被观察类的状态发生变化时候,观察者会进行得到通知进而更新相应状态。 p...

PHP的autoload机制的实现解析

一、autoload机制概述 在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计...

php+ajax无刷新分页实例详解

本文实例讲述了php+ajax无刷新分页实现方法。分享给大家供大家参考,具体如下: ajax_page_show_userinfo.php页面如下: <meta 'Conten...