The information structure of the column group is as above table, PID indicates the ID of parent node
Static Public functionTolayer ($cate,$name= ' Child ',$pid=0){ $arr=Array(); foreach($cate as $v){ if($v[' PID ']==$pid){ $v[$name]=self::tolayer ($cate,$name,$v[' ID ']); $arr[]=$v; } } return $arr;}
Where $cate is the associative array obtained from the query table, the resulting array is as follows:
Array([0] = = Array([id] = 1[Name] + general Management[PID] = 0[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 1[Child] = = Array([0] = = Array([id] = 5[Name] + + column Management[PID] = 1[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 11[Child] = = Array([0] = = Array([id] = 8[Name] + + column Management[PID] = 5[Module] = Category[Action] = index[Parameter] =[Quick] = 0[Status] = 1[Sort] = 111[Child] = = Array())))[1] = = Array([id] = 6[name] + = Content Management[PID] = 1[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 12[Child] = = Array())[2] = = Array([id] = 7[Name] = + Shortcut panel[PID] = 1[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 13[Child] = = Array())))[1] = = Array([id] = 2[Name] + = Module Management[PID] = 0[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 2[Child] = = Array([0] = = Array([id] = 9[name] + = built-in module[PID] = 2[Module] =[Action] = =[Parameter] =[Quick] = 0[Status] = 1[Sort] = 21[Child] = = Array([0] = = Array([id] = 10[Name] + Free Block Management[PID] = 9[Module] = Block[Action] = index[Parameter] =[Quick] = 0[Status] = 1[Sort] = 211[Child] = = Array())[1] = = Array([id] = 11[Name] + + AD Management[PID] = 9[Module] = ABC[Action] = index[Parameter] =[Quick] = 1[Status] = 1[Sort] = 212[Child] = = Array())[2] = = Array([id] = 12[Name] + + Thematic management[PID] = 9[Module] = Special[Action] = index[Parameter] =[Quick] = 0[Status] = 1[Sort] = 213[Child] = = Array())[3] = = Array([id] = 13[Name] = + Announcement Management[PID] = 9[Module] = announce[Action] = index[Parameter] =[Quick] = 1[Status] = 1[Sort] = 214[Child] = = Array())[4] = = Array([id] = 14[Name] + = Links[PID] = 9[Module] = Link[Action] = index[Parameter] =[Quick] = 1[Status] = 1[Sort] = 215[Child] = = Array())[5] = = Array([id] = 15[Name] + message book Management[PID] = 9[Module] = Guestbook[Action] = index[Parameter] =[Quick] = 1[Status] = 1[Sort] = 216[Child] = = Array())[6] = = Array([id] = 16[Name] + review Management[PID] = 9[Module] = Comment[Action] = index[Parameter] =[Quick] = 1[Status] = 1[Sort] = 217[Child] = = Array () ) ) ) [1] = = Array ( [id] = 44 [name] + other modules [pid] = 2 [module] = [action] = [parameter] = [quick] =& Gt 0 [status] = 1 [sort] = 22 [child] = Array () ) )
Using recursion to get an array of columns