Converting the data set into a tree return

/**
 * Converted into a tree data sets returned
 * @Param array $ list data sets
 * @Param string $ pk primary key
 * @Param string $ pid parent name
 * @Param string $ child child node name
 * @Param integer $ root root ID
 * @Return array after conversion tree
 * / 
Function list_to_tree ( $ List , $ PK = 'ID', $ PID = 'PID', $ Child = '_child', $ the root = 0 ) {
     $ Tree = Array (); // Create Tree 
    IF ( is_array ( List $ )) {
         // create a master key based on a reference array 
        $ REFER = array ();
         the foreach ( $ List  AS  $ key => $ Data ) {
             $ REFER [ $ Data [ $ PK ]] = &$list[$key];
        }
        
        foreach ($list as $key => $data) {
            // 判断是否存在parent
            $parentId = $data[$pid];
            if ($root == $parentId) {
                $tree[$data[$pk]] =& $list[$key];
            }else{
                if (isset($refer[$parentId])) {
                    $parent =& $refer[$parentId];
                    $parent[$child][] =& $list[$key];
                }
            }
        }
    }
    return $tree;
}

 

Guess you like

Origin www.cnblogs.com/bluealine/p/11040735.html