循环通过多维关联数组

Rob*_*Rob 1 php associative-array multidimensional-array

我一直用PHP制作一个IRC机器人.我给了不同用户特定的访问级别在0到5之间.0是访客,5是管理员.

我一直在尝试编写一个命令,当用户访问它时,它会向他们发送一个允许他们使用的命令和语法列表.

到目前为止,我有类似的东西

$array = array
(
    "5" => $commands = array
        (
            "test" => $test2 = array
                (
                    "trigger" => "!test",
                    "descrip" => "Just testing."
                )
            "test2" => $test3 = array
                (
                    "trigger" => "!lol",
                    "descrip" => "another test."
                ) 
        ) 
);
Run Code Online (Sandbox Code Playgroud)

我不知道如何循环通过它 if ($accessLevel == 5) then show commands for $array[5(and below)]

最后我希望它发送出去 $array[5][command][trigger] : $array[5][command][descrip]

我不一定需要你为我编码,只是向正确的方向推进会有所帮助.

Mar*_*iot 5

这应该做...(检查权限级别)

foreach($array as $level => $priv){
    // check for privilege level
    if($level >= $accessLevel){
        // loop through privilege array
        foreach($priv as $command => $list){
            foreach($list as $trigger => $description)

            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在旁注中,不是使用字符串键进行级别,而是可以使用数组指示,这样可以将组合的外部foreach/if组合写为

for($i = $accessLevel; $i >= 0; $i--){
   $priv = $array[$i];
   //...
}
Run Code Online (Sandbox Code Playgroud)