php递归查询树状结构数据
时间: 2023-09-10 08:12:18 浏览: 88
在 PHP 中,递归查询树状结构的数据可以通过递归函数来实现。以下是一个示例代码:
```php
// 假设你有一个包含 id 和 parent_id 字段的数据表叫做 `categories`
// 例如:id | parent_id | name
// 1 | null | Category 1
// 2 | null | Category 2
// 3 | 1 | Subcategory 1.1
// 4 | 1 | Subcategory 1.2
// 5 | 3 | Sub-subcategory 1.1.1
// 定义递归函数
function getTree($parent_id = null, $level = 0) {
// 查询数据库,获取当前父级ID下的子分类
$query = "SELECT * FROM categories WHERE parent_id = ?";
$stmt = $pdo->prepare($query);
$stmt->execute([$parent_id]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 循环子分类
foreach ($result as $row) {
// 输出缩进符号,根据层级来决定缩进多少
echo str_repeat('-', $level) . $row['name'] . PHP_EOL;
// 递归调用自身,传入子分类的ID和层级+1
getTree($row['id'], $level + 1);
}
}
// 调用递归函数,传入顶级分类的父级ID为 null
getTree(null);
```
上述代码中,通过递归函数 `getTree()` 来查询树状结构的数据。它首先查询数据库中指定父级ID下的子分类,然后递归调用自身,传入子分类的ID和层级+1。在循环中,使用缩进符号来表示层级关系,并输出分类名称。
请注意,代码中的数据库查询部分需要根据你的实际情况进行调整,你可能需要修改查询语句、连接数据库等。
阅读全文