PHP 无限级分类实现


PHP 实现菜单,或者树形结构数据时候经常用到的无限级分类,入参多维数据数组输出,输出子父级绑定关系的无限级分类封装。

/**
 * @description 无限极分类实现
 * @author Holyrisk
 * @date 2021/4/22 22:41
 * @param        $list  需要被处理的数组
 * @param string $pk id
 * @param string $pid 父级id
 * @param string $child 子级名称
 * @param int    $root 顶级分类的值
 * @return array
 */
public  function buildTree($list, $pk='id', $pid='pid', $child='children', $root=0){
    if (empty($list)){
        return [];
    }
    $tree = array();
    $packData = array();
    foreach ($list as $data) {
        $packData[$data[$pk]] = $data;
    }
    foreach ($packData as $key=>$val){
        if($val[$pid] == $root){
            $tree[] = &$packData[$key];
        }else{
            $packData[$val[$pid]][$child][] = &$packData[$key];
        }
    }

    return $tree;
}


云天阁
非我而当者,吾师也;是我而当者,吾友也;谄谀我者,吾贼也。
搜索