PHP中使用递归函数

来源:互联网 发布:云上贵州大数据的意义 编辑:程序博客网 时间:2024/05/16 00:31

下面是使用递归函数的一个小例子。
这里写图片描述
目的是根据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
这里写图片描述
最终输出结果:
这里写图片描述

0 0
原创粉丝点击