您当前的位置: 首页 > 网站编程 > PHP教程 > 递归删除一个节点以及该节点下的所有节点示例

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

作者:不详 来源:网络 发布时间: 2014-07-31 18:29 点击:
一段递归删除一个部门以及它的所有子部门的一段代码。仅供大家参考和自己以后备用 有的时候删除信息的时候,需要把这条信息下的所有的都删除,这个时候就需要递归删除了。下面是我在做部门管理中的删除部门功能的时候写的一段递归删除一个部门以及它的所有子部门的一段

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

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

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

  下面是我的一段代码的展示:

  代码如下:

  /*

  * 修改一条部门信息

  */

  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()函数是自己已经封装好的函数,是把查询得到的所有内容返回成一个数组。

  心得体会:这是自己第一次写递归算法,写得还很稚嫩,不管怎样功能是实现了。我感觉写递归方面的代码的时候,自己先画好一个树状结构,认清其结构后,根据自己想要得到的效果,先在脑子里模拟一步一步的执行。比如这里的删除,想要删除一个部门,就得删除自己并且查找以自己为上级部门的子部门有哪些,把子部门一个一个地遍历得到,这时候子部门的操作,就和它的上级部门的删除一样,需要删除自己并且查找它的子部门,这样一来就有个类似重复的操作,子部门的操作和上级部门的操作经历的步骤是一样的,因此在子部门的遍历中让它执行这个本身的函数。这样一来就形成了一个递归算法。
分享到:
本文"递归删除一个节点以及该节点下的所有节点示例"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4