Nach einem dezenten Tipp von CVB (welchen ich aber nur Stückhaft angewendet habe) habe ich es nun hinbekommen.
ich habe es folgendermaßen gelöst (insider werden mich womöglich lünchen aber egal)
$row_ukat = mysql_fetch_array($result_ukat);
$c_spalte=1;
$outer = array();
while ($row_kat = mysql_fetch_array($result_kat))
{
$inner = array();
while ($row_ukat[katid] == $row_kat[katid])
{
array_push($inner, array(
'ukatid' => $row_ukat[ukatid],
'katid' => $row_kat[katid],
'ukat' => $row_ukat[ukat]
)
);
$row_ukat = mysql_fetch_array($result_ukat);
}
array_push($outer, array(
'katid' => $row_kat[katid],
'kat' => $row_kat[kat],
'inner' => $inner,
'spalte' => $c_spalte //übergabe des wertes von $c_spalte
)
);
$c_spalte++; // wird nach jedem durchlauf um eins erhöht
if($c_spalte==5){ $c_spalte=1;} // nach 4 durchläufen wird c_spalte wieder auf eins gesetzt.
}
<tmpl_if name='zeile' op='<' value='4'> // überprüft ob zeile kleiner als 4 ist wenn ja führe ANWEISUNG aus.
ANWEISUNG
<tmpl_else> // ansonsten für ANWEISUNG2 aus.
ANWEISUNG2
</tmpl_if>