If the value is already an array, shouldn’t it be used as it? Something like:

```php
if ($this->value instanceof Traversable) {
    return $this->value;
} elseif (is_array($this->value)) {
    return new ArrayIterator($this->value);
} else {
    return new ArrayIterator(array($this->value));
}
```