阅读量:1
在 PHP 中实现无限级分类可以使用递归的方法来实现。以下是一个示例代码:
// 定义一个函数来获取指定父级分类的子级分类 function getChildCategories($parentId, $categories) { $childCategories = array(); foreach ($categories as $category) { if ($category['parent_id'] == $parentId) { $category['children'] = getChildCategories($category['id'], $categories); $childCategories[] = $category; } } return $childCategories; } // 从数据库中获取所有分类数据 // 这里使用一个简单的数组来模拟数据库查询结果 $categories = array( array('id' => 1, 'name' => '分类1', 'parent_id' => 0), array('id' => 2, 'name' => '分类2', 'parent_id' => 0), array('id' => 3, 'name' => '分类3', 'parent_id' => 1), array('id' => 4, 'name' => '分类4', 'parent_id' => 1), array('id' => 5, 'name' => '分类5', 'parent_id' => 2), array('id' => 6, 'name' => '分类6', 'parent_id' => 4), ); // 获取顶级分类(父级分类为0) $topLevelCategories = getChildCategories(0, $categories); // 输出无限级分类 function printCategories($categories, $indent = 0) { foreach ($categories as $category) { echo str_repeat(' ', $indent * 4) . $category['name'] . "<br>"; if (!empty($category['children'])) { printCategories($category['children'], $indent + 1); } } } printCategories($topLevelCategories);
以上代码中,getChildCategories
函数用于获取指定父级分类的子级分类,使用递归的方式获取所有子级分类。printCategories
函数用于输出无限级分类,使用了缩进来展示分类的层级关系。最后,通过调用 printCategories
函数输出顶级分类即可实现无限级分类的展示。