我有这个添加用户,admin的表单。我已经向用户提供了添加其他用户但不添加管理员的权利!
$roles = db_fetch_all("role") ;
$TabRoles = array(''=>'-- Choose --');
foreach($roles as $value)
{
$TabRoles[$value['rid']] = $value['name'];
}
和print_array($TabRoles);
它会显示我:
Array
(
[] => -- Choose --
[admin] => Admin
[seo] => SEO
[user] => User
)
结论是if (user('rid') == 'admin'|'seo')
。我试过这个:
foreach($roles as $value)
{
if (user('rid') == 'admin'|'seo')
{
$TabRoles[$value['rid']] = $value['name'];
}else{
$TabRoles[$value['rid']] = $value['name'][2];
}
}
但是它显示了数组的位置“2”!
Array
(
[] => -- Choose --
[admin] => m
[seo] => O
[user] => e
)
我希望它显示如下:
Array
(
[] => -- Choose --
[user] => User
)
任何解决方案?非常感谢!
解决方案:感谢@DanFromGermany:
foreach($roles as $value)
{
if (user('rid') == 'admin' || user('rid') == 'seo')
{
$TabRoles[$value['rid']] = $value['name'];
}elseif (user('rid') == $value['rid']){
$TabRoles[$value['rid']] = $value['name'];
}
}
答案 0 :(得分:1)
if (user('rid') == 'admin'|'seo')
|
是一个按位运算符,但我想你想在这里进行逻辑比较:
if (user('rid') == 'admin' || user('rid') == 'seo')
在字符串上使用数组括号的说明:
$test = 'abcd';
echo $test[0]; // prints a
echo $test[1]; // prints b
echo $test[2]; // prints c
这就是为什么你只得到一个字母而不是你想要的元素。
我认为你正在寻找类似的东西:
foreach($roles as $value) {
if (user('rid') == $value['rid'])
$TabRoles[$value['rid']] = $value['name'];
}
}
或
foreach($roles as $value) {
$TabRoles[$value['rid']] = $value['name'];
}
if (user('rid') != 'seo' && user('rid') != 'admin')) { // inverse/negate the logic!
unset($TabRoles['seo']);
unset($TabRoles['admin']);
}