У меня небольшие проблемы с потерей порядка в массиве после использования unset()
. Это код, который я использую.
$id = $_GET['id'];
for ($i = 0; $i < count($my_array); $i++) {
if ($my_array[$i] == $id) {
unset($my_array[$i]);
}
}
Предположим, что $my_array
имеет 4 элемента, а $my_array[1]
равно $id
. После того как я сбросил это, я включаю $my_array
и получаю ошибку Undefined Offset: 1 С print_r($my_array)
я получаю $my_array[0]
, $my_array[2]
и $my_array[3]
.
Я прекрасно понимаю, почему это происходит. Есть ли способ переиндексировать массив так, чтобы элемент 2 «сбрасывался» до элемента 1, а остальные элементы соответственно до конца массива?
Что-то вроде reindex($my_array)
будет сладким. Я знаю, что мог бы запустить другой цикл for с новым массивом и передать их вручную, но одношаговое решение было бы здорово. Я просто нигде не мог найти.