2 つの項目を持つ単純な 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;
}