以下是一个简单的PHP树形搜索实例,通过递归函数实现,我们可以通过这个实例来理解如何在PHP中实现树形数据的搜索。

实例描述

我们有一个简单的树形结构,表示一个公司的组织架构,每个部门可能有多个子部门。

实例php树形搜索,PHP树形搜索实例详解及代码展示  第1张

```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中实现树形数据的搜索。递归函数使得代码简洁且易于理解。