递归删除一个节点以及该节点下的所有节点示例

2015-01-24信息快讯网

一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用

有的时候删除信息的时候,需要把这条信息下的所有的都删除,这个时候就需要递归删除了。下面是我在做部门管理中的删除部门功能的时候写的一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用。

下面是我的一段代码的展示:
 
/* 
* 修改一条部门信息 
*/ 
function del($bumen_id){ 
$sql="select bumen_id from lxsm_bumen where topbumen_id=".$bumen_id; //查询以topbumen_id为$bumen_id的bumen_id 
$delsql="delete from lxsm_bumen where bumen_id=".$bumen_id; //删除bumen_id为$bumen_id的部门信息 
$xiaji_id=$this->DB->fetch_assoc($sql); 
if($xiaji_id){ 
foreach($xiaji_id as $id){ 
$res=$this->del($id[bumen_id]); 
} 
} 
$result=$this->DB->query($delsql); 
if($result){ 
return true; 
} 
else{ 
return false; 
} 
} 

注释:这里的topbumen_id是部门信息中的上级部门的id号,fetch_assoc()函数是自己已经封装好的函数,是把查询得到的所有内容返回成一个数组。

心得体会:这是自己第一次写递归算法,写得还很稚嫩,不管怎样功能是实现了。我感觉写递归方面的代码的时候,自己先画好一个树状结构,认清其结构后,根据自己想要得到的效果,先在脑子里模拟一步一步的执行。比如这里的删除,想要删除一个部门,就得删除自己并且查找以自己为上级部门的子部门有哪些,把子部门一个一个地遍历得到,这时候子部门的操作,就和它的上级部门的删除一样,需要删除自己并且查找它的子部门,这样一来就有个类似重复的操作,子部门的操作和上级部门的操作经历的步骤是一样的,因此在子部门的遍历中让它执行这个本身的函数。这样一来就形成了一个递归算法。
又一个PHP实现的冒泡排序算法分享
PHP获取一个字符串中间一部分字符的方法
php中将一段数据存到一个txt文件中并显示其内容
PHP中设置一个严格30分钟过期Session面试题的4种答案
PHP使用Session遇到的一个Permission denied Notice解决办法
PHP中unset,array_splice删除数组中元素的区别
PHP中使用glob函数实现一句话删除某个目录下的所有文件
php+mysql不用递归实现的无限级分类实例(非递归)
PHP不用递归遍历目录下所有文件的代码
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
ThinkPHP实现批量删除数据的代码实例
Yii Framework框架获取分类下面的所有子类方法
PHP实现删除非站内外部链接实例代码
php实例分享之通过递归实现删除目录下的所有文件详解
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
php递归删除目录下的文件但保留的实例分享
PHP递归删除目录几个代码实例
PHP获取栏目的所有子级和孙级栏目的ID号示例
PHP使用imagick读取PDF生成png缩略图的两种方法
PHP fopen()和 file_get_contents()应用与差异介绍
使用PHP导出Redis数据到另一个Redis中的代码
php中3种方法删除字符串中间的空格
php function用法如何递归及return和echo区别
php递归方法实现无限分类实例代码
php判断字符串在另一个字符串位置的方法
php删除数组元素示例分享
php递归使用示例(php递归函数)
分享一个超好用的php header下载函数
php遍历目录输出目录及其下的所有文件示例
php递归函数中使用return的注意事项
一个PHP二维数组排序的函数分享
php的一个简单加密解密代码
php递归获取目录内文件(包含子目录)封装类分享
php查找任何页面上的所有链接的方法
php一次性删除前台checkbox多选内容的方法
php 删除目录下N分钟前创建的所有文件的实现代码
注意:php5.4删除了session_unregister函数
©2014-2024 dbsqp.com