2011-11-29 111 views
-1

所以我正在开发权限系统。它基本上是一个基于角色的系统。我有一个与任务表具有多对多关系的组表,以及一个将它们绑定在一起的权限表。无法弄清楚如何按照我想要的方式对数组进行排序

的数据会是这个样子(任务表):

+-----+--------+---------+----------+ 
| id | task | group | parent | 
|-----------------------------------| 
| 1 | view | news |   | 
|-----------------------------------| 
| 2 | edit | news |   | 
|-----------------------------------| 
| 3 | view | forums |   | 
|-----------------------------------| 
| 4 |a forum | forums | view | 
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 

我试图做的是让每个组的每一页特定权限。但是在需要时,可以提供更多特异性。例如在论坛页面上,我希望能够控制哪个组可以查看/编辑帖子/从每个论坛删除帖子等。

这是所有工作 - 我的问题是如何显示此数据,以便它可以分配。这就是我想要它看起来像:

News 
-- View 
-- Edit 

Forums 
-- View 
---- a forum 

-- Edit 
---- a forum 

我只是不能换我围​​绕如何格式化这个阵头做

Array 
(
    [0] => Array 
     (
      [task] => view 
      [group] => news 
      [parent] => 
     ) 

    [1] => Array 
     (
      [task] => edit 
      [group] => news 
      [parent] => 
     ) 

    [2] => Array 
     (
      [task] => view 
      [group] => forums 
      [parent] => 
     ) 

    [3] => Array 
     (
      [task] => a forum 
      [group] => forums 
      [parent] => view 
     ) 
) 

很抱歉的混乱后!

+0

在我看来,这是重要的东西......人们知道我在做什么以及我想要做什么。更好的办法就是将它打开,而不必在以后输入。 – CrazeD

回答

0

好的,现在完全重新格式化我的答案,因为它有点模糊不清,究竟是不是工作。

首先重新排列数组是这样的:

while($result = $query->fetch_assoc()) 
{ 
    $group = $result['group']; 
    foreach($result as $field => $value) 
    {  
     $data[$group][$field] = $value; 
    } 
} 

然后你可以遍历它:

foreach($data as $group) 
{ 
    echo $group; 
    foreach($group as $task => $value) 
    { 
     if($task == 'parent' && $task != '') { $indent = '----';} 
     else {$indent = '--'; } 
     echo $indent,$task; 
    } 
} 

一切只是勾勒出我的头,所以我希望它的工作原理,它是你想要这个时间。

+0

也许你误会了我的帖子。我已经有了这个数组结构,我想像我在OP中所说的那样,将其格式化为树状结构。 – CrazeD

+0

@CrazeD编辑了我的答案,希望现在有帮助 – Anonymous

相关问题