php id pid,关于无限分类的树状输出(id,name,pid)类型的
时间: 2023-08-03 07:06:30 浏览: 124
php简单实现无限分类树形列表的方法
无限分类树状输出是一种常见的树形结构展示方式,通常用于展示多级分类结构。下面是使用 PHP 实现的示例代码:
```php
// 定义分类数据数组
$data = array(
array('id' => 1, 'name' => '分类1', 'pid' => 0),
array('id' => 2, 'name' => '分类2', 'pid' => 0),
array('id' => 3, 'name' => '分类1-1', 'pid' => 1),
array('id' => 4, 'name' => '分类1-2', 'pid' => 1),
array('id' => 5, 'name' => '分类2-1', 'pid' => 2),
array('id' => 6, 'name' => '分类1-1-1', 'pid' => 3),
);
// 定义分类树函数
function createTree($data, $pid = 0) {
$tree = array();
foreach($data as $key => $val) {
if($val['pid'] == $pid) {
unset($data[$key]);
$val['child'] = createTree($data, $val['id']);
$tree[] = $val;
}
}
return $tree;
}
// 输出分类树
function printTree($tree, $level = 0) {
foreach($tree as $val) {
echo str_repeat(' ', $level) . $val['name'] . '<br />';
if(isset($val['child'])) {
printTree($val['child'], $level + 1);
}
}
}
// 调用分类树函数
$tree = createTree($data);
printTree($tree);
```
上述代码中,`createTree()` 函数使用递归方式生成分类树,并返回一个多维数组。`printTree()` 函数则使用递归方式输出分类树,其中 `$level` 参数表示当前节点的层级深度,用于控制输出缩进。
使用这段代码,您可以将您的无限分类数据传递给 `$data` 变量,然后调用 `createTree()` 和 `printTree()` 函数即可输出树状结构。
阅读全文