Innanzitutto i link sono dinamici o statici? Sono stampati con echo uno per volta o vengono stampati secondo un qualche criterio logico tramite cicli?

Perchè se non cè alcun criterio logico per la stampa e la visualizzazione allora ne devi, o puoi, crearne uno (di metodo logico). Per poi collegare le tue espressioni.

Una soluzione può essere mettere le righe di codice in una array con aggiunti gli utenti o i gruppi utenti che possono visualizzarlo.

Proof of concept:
Codice PHP:
<?php

$rows 
= array(
    array(
        
'html' => '<tr><!-- [...] --></tr>'// codice html riga 1.
        
'users' => '1,2,3'// id utenti abilitati alla visualizzazione.
        
'groups' => '1,2' // id gruppi abilitati alla visualizzazione.
    
),
    
    array(
        
'html' => '<tr><!-- [...] --></tr>'// codice html riga 2.
        
'users' => '4,5'// id utenti abilitati alla visualizzazione.
        
'groups' => '1' // id gruppi abilitati alla visualizzazione.
    
),
);

foreach (
$rows as $row) {
    
// Se l'utente è abilitato alla visualizzazione stampa la riga.
    
if (in_array($userexplode($row['users']))
    || 
in_array($groupexplode($row['groups']))) {
        echo 
$row['html'];
    }
}