写一个查询一个用户所有下级且分级显示的代码
时间: 2023-05-27 20:06:45 浏览: 142
这是一个用递归实现查询一个用户所有下级且分级显示的代码,假设数据库中有一个名为users的表,其中包含字段id和parent_id,id为用户的唯一标识符,parent_id为该用户的上级标识符。
```
function getSubordinates($userId, $level = 0) {
$subordinates = [];
$result = mysqli_query($connection, "SELECT * FROM users WHERE parent_id = $userId");
while ($row = mysqli_fetch_assoc($result)) {
$subordinates[] = [
'id' => $row['id'],
'name' => $row['name'],
'level' => $level
];
$subordinates = array_merge($subordinates, getSubordinates($row['id'], $level + 1));
}
return $subordinates;
}
```
传入参数$userId为要查询的用户的id,$level为该用户的层级,初始值为0。函数首先查询该用户的所有下级,然后将其id、名称和层级存入一个数组中,并递归查询每个下级的下级,直到没有下级为止。最后返回所有下级的数组。
调用该函数并输出结果:
```
$subordinates = getSubordinates($userId);
foreach ($subordinates as $subordinate) {
echo str_repeat('-', $subordinate['level']) . $subordinate['name'] . '<br>';
}
```
这里使用了str_repeat函数来输出每个下级的名称前面的“-”,数量为该下级的层级。最终输出结果将会以分级的形式显示该用户的所有下级。
阅读全文