您的位置:首页 > 编程语言 > PHP开发

PHP中使用递归函数

2016-04-13 16:42 645 查看
下面是使用递归函数的一个小例子。



目的是根据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



最终输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php