Я считаю, что вы не должны сбрасывать ($ tab [i]) в цикле, я бы сбросил $ tab после завершения цикла.Это может испортить позиции и вашу ценность.Также я думаю, что остальное не открывается и не закрывается {} должным образом.
Я сделаю так:
function check(&$tab,&$tabstr,&$tabint) {
$tabint= array();
$tabstr= array();
for($i=0;$i<count($tab);$i++) {
if(is_numeric($tab[$i])==1) {
array_push($tabint, $tab[$i]);
}
else {
array_push($tabstr, $tab[$i]);
}
}
unset($tab);
}