... letztere ein String, wobei (int)$lastshown lediglich "0" ergibt.
Hast Du das mit var_dumb(); ermittelt?
Per echo angezeigt, sehe ich die Variablen korrekt.
Mach mal unmittelbar vor
if ($shouts[2] > $lastshown)
var_dump($shouts[2]);
var_dump($lastshown);
var_dump(intval($lastshown));
und teile uns das Ergebnis mit (das muß man wohl dazusagen).