Рассмотрим простой PHP ArrayObject с двумя элементами.
$ao = new ArrayObject();
$ao[] = 'a1'; // [0] => a1
$ao[] = 'a2'; // [1] => a2
Затем удалите последний элемент и добавьте новый.
$ao->offsetUnset(1);
$ao[] = 'a3'; // [2] => a3
Мне бы очень хотелось, чтобы у 'a3' было [1].
Как я могу сбросить значение внутреннего указателя до добавить 'a3'?
У меня есть простая функция, которая делает это, но я бы не стал копировать массив, если мне это не нужно.
function array_collapse($array) {
$return = array();
while ($a = current($array)) {
$return[] = $a;
next($array);
}
return $return;
}