用于检测用户是否是特定用户组成员的自定义代码的小问题

Small issue with custom code to detect if a user is a member of a specific usergroup

我有以下代码检测用户是否是某个 Joomla 用户组的成员并向用户显示相关 link。

这对 1 个用户组非常有效,但是当用户是 1 个以上用户组的成员时,按钮会根据用户所属的用户组数量重复。

因此,例如,如果用户是 4 个用户组的成员,则该按钮将显示 4 次(如果用户是用户组的成员,例如 'Usergroup001' 将显示 4 个按钮中的 1 个是一个 'Start' 按钮(根据循环))。

我希望按钮只显示一次,无论用户属于多少个用户组。

<?php
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
foreach($user_->groups as $group){
$query  = 'SELECT title FROM #__usergroups';
$query .= ' WHERE id = ' . $group;
$db->setQuery( $query );
$grp = $db->loadResult();

if ($grp=='Usergroup001') : ?>
<a href="/start">Start</a>

<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>

<?php endif; ?>
<?php
}
?>

如果有人能提供帮助,在此先感谢!!!

尝试in_array

http://php.net/manual/en/function.in-array.php

if (in_array($grp,'Usergroup001')) : ?>
<a href="/start">Start</a>

<?php else : ?>
<a href="/sign-up">Sign up to Usergroup 001</a>

也许这会奏效:

<?php 
$user_  = JFactory::getUser();
$db     = JFactory::getDBO();
$isMember = false;
foreach($user_->groups as $group){
    $query  = 'SELECT title FROM #__usergroups';
    $query .= ' WHERE id = ' . $group;
    $db->setQuery( $query );
    $grp = $db->loadResult();
    if ($grp=='Usergroup001') { 
        $isMember = true; 
        break; 
    }
}
if ($isMember ) : ?>
    <a href="/start">Start</a>
<?php else : ?>
    <a href="/sign-up">Sign up to Usergroup 001</a>
<?php endif; ?>