Zend Paginator

Code
<?php

use Zend\Paginator\Adapter\ArrayAdapter;
use 
Zend\Paginator\Paginator;

$data = [
    [
'id' => 1'name' => 'one'],
    [
'id' => 2'name' => 'two'],
    [
'id' => 3'name' => 'three'],
    [
'id' => 4'name' => 'four'],
    [
'id' => 5'name' => 'five'],
    [
'id' => 6'name' => 'six'],
    [
'id' => 7'name' => 'seven'],
];

$adapter = new ArrayAdapter($data);
$paginator = new Paginator($adapter);
$paginator->setItemCountPerPage(4);

echo 
sprintf(
    
'page %d of %d'PHP_EOL,
    
$paginator->getCurrentPageNumber(), 
    
count($paginator)
);

foreach(
$paginator as $item) {
    echo 
$item['id'] . ' = ' .
        
$item['name'] . PHP_EOL;
}

// go to page 2
$paginator->setCurrentPageNumber(2);

echo 
sprintf(
    
'page %d of %d'PHP_EOL,
    
$paginator->getCurrentPageNumber(), 
    
count($paginator)
);

foreach(
$paginator as $item) {
    echo 
$item['id'] . ' = ' .
        
$item['name'] . PHP_EOL;
}
Result
page 1 of 2
1 = one
2 = two
3 = three
4 = four
page 2 of 2
5 = five
6 = six
7 = seven
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6