PHP中使用递归函数 - Go语言中文社区

PHP中使用递归函数


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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/sinat_21125451/article/details/51144717
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-28 19:59:50
  • 阅读 ( 1402 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢