在PHP中,遍历父子关系的数据结构,如树形结构,是非常常见的需求。以下是一个简单的实例,展示了如何使用PHP遍历一个简单的树形结构。
我们定义一个树形结构的数据,如下表所示:

| ID | 父ID | 名称 |
|---|---|---|
| 1 | 0 | 根节点 |
| 2 | 1 | 子节点1 |
| 3 | 1 | 子节点2 |
| 4 | 2 | 孙节点1 |
| 5 | 2 | 孙节点2 |
接下来,我们将使用PHP代码实现遍历这个树形结构。
```php
// 定义树形结构数据
$data = [
['id' => 1, 'parentId' => 0, 'name' => '根节点'],
['id' => 2, 'parentId' => 1, 'name' => '子节点1'],
['id' => 3, 'parentId' => 1, 'name' => '子节点2'],
['id' => 4, 'parentId' => 2, 'name' => '孙节点1'],
['id' => 5, 'parentId' => 2, 'name' => '孙节点2']
];
// 遍历函数
function treeTraversal($data) {
$tree = [];
foreach ($data as $item) {
$tree[$item['id']] = $item;
if (isset($tree[$item['parentId']])) {
$tree[$item['parentId']]['children'][$item['id']] = &$tree[$item['id']];
}
}
return $tree;
}
// 调用遍历函数
$tree = treeTraversal($data);
// 打印遍历结果
function printTree($tree, $prefix = '') {
foreach ($tree as $item) {
echo $prefix . $item['name'] . PHP_EOL;
if (isset($item['children'])) {
printTree($item['children'], $prefix . '--');
}
}
}
printTree($tree);
>
```
执行上述代码,将输出以下遍历结果:
```
根节点
--子节点1
--子节点2
---孙节点1
---孙节点2
```
这样,我们就成功地使用PHP实现了树形结构的遍历。在实际项目中,您可以根据需要修改和扩展这个实例,以满足不同的需求。









