考虑一个包含两个项目的简单 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;
}