PHP中使用递归函数

下面是使用递归函数的一个小例子。
PHP中使用递归函数
文章图片

目的是根据parent_id和task_id对task进行分类。
具体实现:

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 '
    '; foreach($parent as $task_id => $todo) { //将$parent中的数组进行循环 echo '
  1. '.$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 '
  2. '; } echo '
'; } ?>

【PHP中使用递归函数】图1-1
PHP中使用递归函数
文章图片

最终输出结果:
PHP中使用递归函数
文章图片

    推荐阅读