The ArrayIterator class

(PHP 5)

Introduction

This iterator allows to unset and modify values and keys while iterating
over Arrays and Objects.

When you want to iterate over the same array multiple times you need to
instantiate ArrayObject and let it create ArrayIterator instances that
refer to it either by using foreach or by calling its getIterator()
method manually.