Ключи сохраняются с отсутствующим удаленным ключом, но их можно переставить следующим образом:
$array = array(1,2,3,4,5);
unset($array[2]);
$arranged = array_values($array);
print_r($arranged);
Выходы:
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 5
)
Обратите внимание, что если мы сделаем следующее без перестановки:
unset($array[2]);
$array[]=3;
Индекс значения 3 будет 5, потому что он будет помещен в конец массива и не будет пытаться проверить или заменить отсутствующий индекс. Это важно помнить при использовании FOR LOOP с доступом к индексу.