PHP中使用递归函数
2016-04-13 16:42
645 查看
下面是使用递归函数的一个小例子。
目的是根据parent_id和task_id对task进行分类。
具体实现:
图1-1
最终输出结果:
目的是根据parent_id和task_id对task进行分类。
具体实现:
<?php //连接数据库,使用前几天创建的数据库连接文件进行连接,如果没有这个文件可以去我的博客里找一下 require_once('./db.php'); $connect = DB::getInstance()->connect(); $sql = 'select task_id, parent_id, task from t_task order by parent_id asc'; $res = $connect->query($sql); //这里设置一个数据,用来存放task下是否有别的task $tasks = array(); //下面就来存放,一看就懂 while(list($task_id, $parent_id, $task) = $res->fetch()) { $tasks[$parent_id][$task_id] = $task; } //可以输出一下tasks看看是什么样的,见图1-1,可以看出它其实就是将每一个task根绝parent_id分成了不同的组 //定义递归函数 function make_list($parent) { global $tasks;//引入$tasks echo '<ol>'; foreach($parent as $task_id => $todo) { //将$parent中的数组进行循环 echo '<li>'.$todo; //如果$tasks中有task_id的话,代表这个task_id的task是有子task的,也就是有task的task_id的parent_id是这个task_id,说的可能有点复杂,其实仔细想一想还是很简单的,就是判断是否有子task //如果有的话就把这个task_id当做值再次传入make_list(),然后查找它有没有子task if(isset($tasks[$task_id])) { make_list($tasks[$task_id]); } echo '</li>'; } echo '</ol>'; } ?>
图1-1
最终输出结果:
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)