Individual data structure in Doctrine with custom Hydrators

Code
<?php

use Doctrine\ORM\Internal\Hydration\AbstractHydrator;
use 
Doctrine\ORM\Internal\Hydration\ObjectHydrator;
use 
PHPSnippets\Db\Entity\Test;

class 
ArrayIteratorHydrator extends AbstractHydrator
{
    protected function 
hydrateAllData()
    {
        
$result = array();

        while (
$data $this->_stmt->fetch(\PDO::FETCH_ASSOC)) {
            
$result[] = new ArrayIterator($data);
        }

        return 
$result;
    }
}

$entityManager->getConfiguration()
    ->
addCustomHydrationMode('MyHydrator'ArrayIteratorHydrator::CLASS);

$qb $entityManager->createQueryBuilder();
$result $qb->select('t')
    ->
from(Test::CLASS, 't')
    ->
setMaxResults(5)
    ->
getQuery()
    ->
getResult('MyHydrator');

foreach (
$result as $id => $row) {
    
var_dump($row);
}
Result
object(ArrayIterator)#360 (1) {
["storage":"ArrayIterator":private]=>
array(3) {
["id_0"]=>
string(1) "1"
["name_1"]=>
string(3) "foo"
["creation_date_2"]=>
string(19) "2014-07-20 11:37:29"
}
}
object(ArrayIterator)#391 (1) {
["storage":"ArrayIterator":private]=>
array(3) {
["id_0"]=>
string(1) "2"
["name_1"]=>
string(4) "test"
["creation_date_2"]=>
string(19) "2014-07-20 10:40:22"
}
}
object(ArrayIterator)#362 (1) {
["storage":"ArrayIterator":private]=>
array(3) {
["id_0"]=>
string(1) "3"
["name_1"]=>
string(3) "bar"
["creation_date_2"]=>
string(19) "2014-07-23 07:27:18"
}
}
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6