PHP 处理无限极分类数据通用方法

在工作中,我们经常会遇到处理多级分类的问题,我们常见的是三级,定义一个字段pid,查询的时候一级一级查询数据数据,这样也是可以解决问题。只是不够灵活,所以就有了无限极,不管有多少级菜单都能很好的快速处理。

下面是PHP中无限极分类的处理方法:

/**
 * 处理无限极分类通用方法
 */
public function tree($list=[], $pk='id', $pid = 'pid', $child = '_child', $root = 0): array
{
    // 创建Tree
    $tree = array();
    if(is_array($list)) {
        // 创建基于主键的数组引用
        $refer = array();
        foreach ($list as $key => $data) {
            $refer[$data[$pk]] =& $list[$key];
        }
        foreach ($list as $key => $data) {
            // 判断是否存在parent
            $parentId =  $data[$pid];
            if ($root == $parentId) {
                $tree[] =& $list[$key];
            }else{
                if (isset($refer[$parentId])) {
                    $parent =& $refer[$parentId];
                    $parent[$child][] =& $list[$key];
                }
            }
        }
    }
    return $tree;
}

$list:是直接读取数据库数据。给这个方法处理


点赞1
点击评论0
收藏0
浏览 124
 

还没有评论,快来发表第一个评论吧

免责声明:凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,注册用户和一般页面游览者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任(包括侵权责任、合同责任和其它责任)
*尊重作者,转载请注明出处!