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中session定期自动清理的方法

下文来为各位介绍PHP设置session定期自动清理的例子了,因为session默认是15分钟自动把变量给清除内存了,但有一些时间并不生效了,下面我们就来看看。 配置完成php后默认ph...

PHP中使用unset销毁变量并内存释放问题

复制代码 代码如下: for ( $i = 1; $i < 100; $i++ ) { $str = str_repeat('01234567', $i); $a = memory...

php 设计模式之 单例模式

小船类boat.php复制代码 代码如下:<?php class boat { private static $instance=null; private $skipper; p...

PHP设计模式之装饰者模式

PHP设计模式之装饰者模式

介绍 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 思维导图   有这样一个项目,做一个餐厅订餐系统。起初的代码结构是这样的。前...

PHP简单实现循环链表功能示例

PHP简单实现循环链表功能示例

本文实例讲述了PHP简单实现循环链表功能。分享给大家供大家参考,具体如下: 概述: 循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。...