以下是一个简单的PHP树形搜索实例,通过递归函数实现,我们可以通过这个实例来理解如何在PHP中实现树形数据的搜索。
实例描述
我们有一个简单的树形结构,表示一个公司的组织架构,每个部门可能有多个子部门。

```plaintext
公司
├── 财务部
│ ├── 财务管理
│ └── 财务核算
├── 技术部
│ ├── 软件开发
│ └── 硬件开发
└── 人事部
├── 招聘
└── 培训
```
代码实现
我们需要定义一个二维数组来表示这个树形结构。
```php
$departments = [
1 => [
'name' => '公司',
'children' => [
2 => ['name' => '财务部', 'children' => [3, 4]],
5 => ['name' => '技术部', 'children' => [6, 7]],
8 => ['name' => '人事部', 'children' => [9, 10]]
]
],
3 => ['name' => '财务管理'],
4 => ['name' => '财务核算'],
6 => ['name' => '软件开发'],
7 => ['name' => '硬件开发'],
9 => ['name' => '招聘'],
10 => ['name' => '培训']
];
>
```
接下来,我们编写一个递归函数来搜索树形结构。
```php
function searchTree($tree, $searchTerm) {
$results = [];
foreach ($tree as $item) {
if ($item['name'] == $searchTerm) {
$results[] = $item;
}
if (!empty($item['children'])) {
$results = array_merge($results, searchTree($item['children'], $searchTerm));
}
}
return $results;
}
>
```
使用示例
现在我们可以通过调用`searchTree`函数来搜索特定的部门。
```php
$searchTerm = '财务部';
$results = searchTree($departments, $searchTerm);
>
```
输出结果
为了方便查看,我们可以将结果打印出来。
```php
echo '
';';print_r($results);
echo '
>
```
表格形式呈现
以下是搜索结果以表格形式呈现:
| 部门ID | 部门名称 |
|---|---|
| 2 | 财务部 |
通过上述实例,我们可以看到如何在PHP中实现树形数据的搜索。递归函数使得代码简洁且易于理解。







