# The ArrayIterator class

&reftitle.intro;

Allows the removal of elements, and the modification of keys or values while iterating over `array`s or `object`s.

To iterate the same array more than once, it is recommended to instantiate `ArrayObject` and use the `ArrayIterator` instance either implicitly created when using &foreach; to iterate over the array stored internally, or create one by calling the `ArrayObject::getIterator` method manually.

&reftitle.classsynopsis;

         ArrayIterator

         implements
         SeekableIterator

         ArrayAccess

         Serializable

         Countable

        &Constants;

         public
         const
         int
         ArrayIterator::STD_PROP_LIST

         public
         const
         int
         ArrayIterator::ARRAY_AS_PROPS

        &Methods;

&reftitle.constants;

### ArrayIterator Flags

`ArrayIterator::STD_PROP_LIST`

- Properties of the object have their normal functionality when accessed as list (`var_dump`, &foreach;, etc.).

`ArrayIterator::ARRAY_AS_PROPS`

- Entries can be accessed as properties (read and write).

&reference.spl.entities.arrayiterator;