detto non la capisco molto o.o ma nel codice qualcosina si e credo che mi sono spiegato male.. questo è il codice che mi hai postato tu

$elenco=array(4,5);
foreach($elenco as $n){
if($vbulletin->userinfo['field'.$n]){
//codice PHP
break;
}
}
Anche se la variabile è composta da un solo numero la condizione risulterebbe (fosse esso 5)

if($vbulletin->userinfo['field5'])

Quindi credo che la condizione sia cosi

if($vbulletin->userinfo['field'.$n''])

correggimi se sbaglio mentre se la variabile è composta da più numeri (separati da una virgola)

La condizione finale uscirebbe (fossero i numeri 5 e 6)

if($vbulletin->userinfo['field5,6'])

Anzichè

if($vbulletin->userinfo['field5'] OR $vbulletin->userinfo['field6'])

Se ho interpretato male il tuo codice scusami in anticipo ma non sono abbastanza capace per questo