Вы всегда можете работать с копией массива:
$array = $object->getArrayCopy();
// modify $array as needed, e.g. array_slice(....)
$object = new ArrayObject($array);
Когда-то в прошлом была идея сделать все функции, которые принимают массивы (или, вероятно, многие из них), также и ArrayObject.Но я не знаю, как далеко это зашло и если оно все еще следует.Я думаю, что ArrayObject - это скорее поведенческая вещь, чем фактическая замена собственного массива в PHP.
Связанный вопрос: PHP Array и ArrayObject