/** * 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; }