iterator_to_array() to create a specific array data structure

Code
<?php

class FooIterator extends ArrayIterator
{
    public function 
key()
    {
        return 
$this->current()->getKey();
    }
}

class 
Foo
{
    public function 
__construct($key$value)
    {
        
$this->key $key;
        
$this->value $value;
    }
    
    public function 
getKey()
    {
        return 
$this->key;
    }
    
    public function 
getName()
    {
        return 
$this->name;
    }
}

$arr = [
    new 
Foo('aaa','value a'),
    new 
Foo('bbb','value b'),
    new 
Foo('ccc','value c'),
];

$iterator = new FooIterator($arr);

$arr iterator_to_array($iterator);

var_dump(array_key_exists('bbb'$arr));
Result
bool(true)
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6