Не надо 3 раза explode, тем более если измениться структура, например добавятся другие параметры после
; , будет весело все переписывать
$string = 'id=171:znac=1;id=203:znac=1;id=225:znac=1;id=162:znac=0.5;id=203:znac=31;';
preg_match_all('/id=(\d+)/', $string, $matches);
var_dump($matches[1]);
Array ( [0] => 171 [1] => 203 [2] => 225 [3] => 162 [4] => 203 )