社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
下面是使用递归函数的一个小例子。
目的是根据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
最终输出结果:
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!