原始数据
- 数据库
- 打印到页面
递归
- 递归的思路就是【找儿子】,也就是循环所有数据,找到每条数据的所有儿子、儿子的儿子、儿子的儿子的儿子…,首先我们知道要找test1的儿子就是找所有pid为1的数据,于是遍历整个数组找到了test1-1和test1-2;然后还要分别找test1-1和test1-2的儿子,就这样一直找下去,由于每次找儿子的方法都是一样的,就是遍历所有数据(除开自己的长辈,因为长辈不可能是儿孙),找出符合条件的,唯一不同的就是每次找儿子的爹不一样,代码如下:
function getChild($data, $id = 0)
{
//初始化儿子
$child = [];
//循环所有数据找$id的儿子
foreach ($data as $key => $datum) {
//找到儿子了
if ($datum['pid'] == $id) {
//保存下来,然后继续找儿子的儿子
$child[$datum['id']] = $datum;