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 '- '.$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 '
';
}
echo '
';
}
?>
【PHP中使用递归函数】图1-1
![PHP中使用递归函数](https://img.it610.com/image/info8/dac9ba629ac74a45b2deead69b35ea91.jpg)
文章图片
最终输出结果:
![PHP中使用递归函数](https://img.it610.com/image/info8/053438ea130b4496aa8bf7343c64bc60.jpg)
文章图片
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 由浅入深理解AOP
- 异地恋中,逐渐适应一个人到底意味着什么()
- 【译】20个更有效地使用谷歌搜索的技巧
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售