No, gli indici rimagono
Se hai un array del tipo

$array = array("x","y","z");

e fai

unset($array[1]);

Ti troverai un array così composto
[0]=>"x"
[2]=>"y"

Puoi effettuare un aggiornamento usando la funzione sort() che però cambia l'ordine degli elementi oppure con una semplicissima funzione che puoi creare tu tipo
Codice PHP:
function eliminaBuchi($array)
{
  
$result = array();
  foreach(
$array as $value)
    
$result[] = $value;
  return 
$result;