php无限极分类
时间: 2023-07-26 15:16:00 浏览: 96
在PHP中实现无限极分类可以使用递归函数来实现。以下是一个简单的示例代码:
```
function getTree($data, $pid = 0, $level = 0) {
static $tree = array();
foreach($data as $key => $val) {
if($val['parent_id'] == $pid) {
$val['level'] = $level;
$tree[] = $val;
unset($data[$key]);
getTree($data, $val['id'], $level + 1);
}
}
return $tree;
}
```
这个函数接受一个多维数组、父级ID和当前层级作为参数。首先,我们定义了一个静态变量 `$tree` 用于存储树形结构。然后,我们遍历数据数组,并找出所有父级ID等于当前ID的项目。将它们添加到 `$tree` 数组中,并从原数组中删除。然后,我们递归调用 `getTree()` 函数,将当前ID作为父级ID,并将层级加1。最后,返回 `$tree` 数组。
使用示例:
```
$data = array(
array('id' => 1, 'parent_id' => 0, 'name' => 'A'),
array('id' => 2, 'parent_id' => 1, 'name' => 'B'),
array('id' => 3, 'parent_id' => 1, 'name' => 'C'),
array('id' => 4, 'parent_id' => 2, 'name' => 'D'),
array('id' => 5, 'parent_id' => 3, 'name' => 'E'),
);
$tree = getTree($data);
print_r($tree);
```
输出结果如下:
```
Array
(
[0] => Array
(
[id] => 1
[parent_id] => 0
[name] => A
[level] => 0
)
[1] => Array
(
[id] => 2
[parent_id] => 1
[name] => B
[level] => 1
)
[2] => Array
(
[id] => 4
[parent_id] => 2
[name] => D
[level] => 2
)
[3] => Array
(
[id] => 3
[parent_id] => 1
[name] => C
[level] => 1
)
[4] => Array
(
[id] => 5
[parent_id] => 3
[name] => E
[level] => 2
)
)
```
这里我们使用一个简单的数组作为示例数据,结果返回了树形结构数组,其中每个项目包含其层级信息。你可以根据自己的需要进行调整和修改。
阅读全文