php 从父类找到子类,组装新数组 树状结构

/**
 *
 * @param $list
 * @param string $pk
 * @param string $pid
 * @param int $root
 * @return array
 *  数组转树
 */
function list_to_tree($list,$pk='id',$pid='pid',$root=0)
{
    $tree = array();
    if(is_array($list)){
        $refer = array();
        foreach ($list as $key => $data){
            $refer[$data[$pk]] = &$list[$key];
        }
        foreach ($list as $key => $data){
            $parentId = $data[$pid];
            if($root == $parentId){
                $tree[] = &$list[$key];
            }else{
                if(isset($refer[$parentId])){
                    $parent = &$refer[$parentId];
                    $parent['child'][] = &$list[$key];
                }
            }
        }
    }
    return $tree;
}

 

posted @ 2021-05-16 20:36  搬砖小伙子  阅读(262)  评论(0)    收藏  举报