Działania na ciągach znakow

Witam

Zrobiłem coś takiego:

$temat="siema co tam??";

$przedrostek="[1]";

$ilosc = explode("[",$przedrostek); 

$przedrostek=$ilosc[1];

$ilosc = explode("]",$przedrostek); 

$przedrostek=$ilosc[0]+1;

$nowytemat="[$przedrostek]-" . $temat;

echo"$nowytemat";

Czy jest jakaś funkcja lub cokolwiek co skróci ten kod??

Czy on jest poprawny??

Ja nie moge przypomniec sobie ani znaleźć na necie nic co by mi pomogło.

Jeśli ktoś zna funkcje lub ma lepszy krótszy sposób na zrobienie tego to niech napisze.

$temat='siema co tam??';

$przedrostek='[1]';

preg_match('#\[([\d]+)\]#', $przedrostek, $ilosc);

echo '['.($ilosc[1]+1).']-'.$temat;