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($user, explode($row['users']))
|| in_array($group, explode($row['groups']))) {
echo $row['html'];
}
}