我一直用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."
)
)
);
我不知道如何循环播放if ($accessLevel == 5) then show commands for $array[5(and below)]
最后,我希望它发送$array[5][command][trigger] : $array[5][command][descrip]
我不一定需要你为我编码,只是向正确的方向推进会有所帮助。
答案 0 :(得分: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)
}
}
}
}
在旁注中,不是使用字符串键来表示级别,而是可以使用数组指示,这样可以将组合的外部foreach/if
组合写为
for($i = $accessLevel; $i >= 0; $i--){
$priv = $array[$i];
//...
}
答案 1 :(得分:0)
for ($i = 5; $i >= 0; --$i) {
//list commands for accesslevel $i
}
答案 2 :(得分:0)
这样的东西? (Prolly想要添加换行符或分隔符)
foreach ($array[5] as $key=>$value) {
echo $key;
echo $value['trigger'];
echo $value['descrip'];
}