温馨提示×

处理无限层级分类的PHP递归函数

PHP
小樊
82
2024-04-26 20:24:49
栏目: 编程语言

下面是一个处理无限层级分类的PHP递归函数示例:

function getCategoryTree($categories, $parent_id = 0) {
    $tree = array();
    
    foreach ($categories as $category) {
        if ($category['parent_id'] == $parent_id) {
            $children = getCategoryTree($categories, $category['id']);
            if ($children) {
                $category['children'] = $children;
            }
            $tree[] = $category;
        }
    }
    
    return $tree;
}

// 示例数据
$categories = array(
    array('id' => 1, 'name' => 'Category 1', 'parent_id' => 0),
    array('id' => 2, 'name' => 'Category 2', 'parent_id' => 0),
    array('id' => 3, 'name' => 'Category 1.1', 'parent_id' => 1),
    array('id' => 4, 'name' => 'Category 1.2', 'parent_id' => 1),
    array('id' => 5, 'name' => 'Category 1.1.1', 'parent_id' => 3),
);

$tree = getCategoryTree($categories);
print_r($tree);

在上面的例子中,getCategoryTree函数接受一个包含所有分类的数组和一个父分类ID作为参数,并递归地构建一个树形结构的数组。通过调用getCategoryTree函数并传入示例数据后,将会输出一个包含层级关系的分类树。您可以根据实际需求修改示例数据和函数逻辑。

0