If you use exchangeArray method of ArrayObject and then next method of ArrayIterator like this:
<?php
    
    $fruits = array("apple", "grape", "lemon");
    $colors = array("blue", "yellow", "green");
    $arrayObject = new ArrayObject($fruits);
    
    $arrayIterator = $arrayObject->getIterator();
    while($arrayIterator->valid()) {
        if ($arrayIterator->current() == "grape") {
            $arrayObject->exchangeArray($colors);
        }
        $arrayIterator->next();
    }
?>
You will receive:
PHP Notice:  ArrayIterator::next(): Array was modified outside object and internal position is no longer valid
So be careful with next and prev operations. :)