<?php

function paginate1($currentPage, $maxPages, $pagesToShow)
{
    $middle = floor($pagesToShow / 2);
	$pages = array();
       
    $FirstPage = max(1, $currentPage - $middle);
    $LastPage = $FirstPage + $pagesToShow - 1;
    
    if ($LastPage > $maxPages)
    {
        $LastPage = $maxPages;
        $FirstPage = $LastPage - $pagesToShow + 1;
    } 

	for($i = $FirstPage; $i <= $LastPage; $i++)
    {
        $pages[] = array('number'=> $i, 'active'=>($i==$currentPage));
	}
	return $pages;
}

echo var_dump(paginate1(9,10,5));