Primero que nada
unset(). Segundo esta instrucción no modifica la estructura de los indices, deja el lugar vacio. Hay algunas formas de modificar los indices, acontinuación te dejo un ejemplo de codigo para que entiendas bien como trabaja.
Código PHP:
<?php
$arreglo = array("uno","dos","tres","cuatro","cinco","seis","siete","ocho");
var_dump($arreglo);
/* Este es el array original
array(8) {
[0]=>
string(3) "uno"
[1]=>
string(3) "dos"
[2]=>
string(4) "tres"
[3]=>
string(6) "cuatro"
[4]=>
string(5) "cinco"
[5]=>
string(4) "seis"
[6]=>
string(5) "siete"
[7]=>
string(4) "ocho"
}
*/
unset($arreglo[3]);
var_dump($arreglo);
/* Este es el array modificado y el elemento 3 no esta,
no esta representado por un espacio en blanco.
array(7) {
[0]=>
string(3) "uno"
[1]=>
string(3) "dos"
[2]=>
string(4) "tres"
[4]=>
string(5) "cinco"
[5]=>
string(4) "seis"
[6]=>
string(5) "siete"
[7]=>
string(4) "ocho"
}
*/
// Este es un "truquito" para que sean modificados los indices.
$arreglo2 = implode(";",$arreglo);
$arreglo2 = explode(";",$arreglo2);
var_dump($arreglo2);
/* Ahora los indices fueron corridos.
array(7) {
[0]=>
string(3) "uno"
[1]=>
string(3) "dos"
[2]=>
string(4) "tres"
[3]=>
string(5) "cinco"
[4]=>
string(4) "seis"
[5]=>
string(5) "siete"
[6]=>
string(4) "ocho"
}
*/
?>
Saludos y cualquier cosa pregunta o lee

.