在PHP中实现无限级分类树形结构是一种常见的应用场景,以下是一个简单的实例,展示了如何使用递归函数来构建和显示一个无限级的分类结构。

1. 数据结构设计

我们需要一个数据库表来存储分类信息。以下是一个简单的表结构:

PHP实例:无限级分类树形结构实现 手机通讯

字段名类型说明
idint主键
pidint父级分类ID
namevarchar分类名称
leveltinyint分类层级

2. 数据库表创建

```sql

CREATE TABLE categories (

id INT AUTO_INCREMENT PRIMARY KEY,

pid INT DEFAULT 0,

name VARCHAR(255),

level TINYINT

);

```

3. PHP代码实现

以下是一个PHP脚本,用于递归地获取和显示无限级分类:

```php

// 假设数据库连接已经建立,并获取所有分类数据

$categories = [

['id' => 1, 'pid' => 0, 'name' => '根分类', 'level' => 1],

['id' => 2, 'pid' => 1, 'name' => '一级分类1', 'level' => 2],

['id' => 3, 'pid' => 1, 'name' => '一级分类2', 'level' => 2],

['id' => 4, 'pid' => 2, 'name' => '二级分类1', 'level' => 3],

['id' => 5, 'pid' => 2, 'name' => '二级分类2', 'level' => 3],

['id' => 6, 'pid' => 3, 'name' => '二级分类1', 'level' => 3],

// ... 更多分类数据

];

function buildTree($data, $pid = 0) {

$tree = [];

foreach ($data as $item) {

if ($item['pid'] == $pid) {

$children = buildTree($data, $item['id']);

if ($children) {

$item['children'] = $children;

}

$tree[] = $item;

}

}

return $tree;

}

$tree = buildTree($categories);

// 输出树形结构

function printTree($tree, $level = 0) {

static $space = '';

$space .= str_repeat(' ', $level);

foreach ($tree as $item) {

echo $space . $item['name'] . "