He aquí mi solución (es una base, que necesita ser pulida, eso les dejo a ustedes Guiño )
paginar.php
Código PHP:
function paginar($v, $l, $p) {
Código PHP:
// DEFINIMOS LA CANTIDAD DE PÁGINAS
$paginas = ceil(count($v) / $l);
Código PHP:
// CONDICION DE INICIO
$inicio = ($p-1)*$l;
// CONDICION DE FINAL
$final = $p*$l;
Y ya estamos listos para empezar a recorrer el vector mostrando cada resultado dentro de un div de id="item" dentro del div de resultados. Debemos tener en cuenta que, si no existiera el item i-ésimo dentro del vector $v tenemos que dejar de listar items:
Código PHP:
// MOSTRAMOS LOS ITEMS RESPECTIVOS
echo '<div id="resultados">';
for ($i=$inicio; $i<$final; $i++) {
if (isset($v[$i]))
echo "<div id=\"item\">$i.- $v[$i]</div>";
else
break;
}
echo '</div>';
Listo, tenemos los resultados correspondientes a la página $p, pero necesitaríamos mostrar el total de páginas a modo de menú de hipervínculos para poder navegar entre los ítems. Para ello comprobaremos si nos encontramos en la primera pagina para no mostrar "Página anterior" o en la última para no mostrar "Página siguiente", además de no crear un vínculo a la misma página:
Código PHP:
// LISTAMOS LAS PÁGINAS
echo '<div id="paginas">';
if ($p>1)
echo "<a href=\"index.php?p=" . ($p-1) . "\">Página Anterior</a> - ";
for ($i=1; $i<=$paginas; $i++) {
if ($i == $p)
echo "<strong>$i</strong> ";
else
echo "<a href=\"index.php?p=$i\">$i</a> ";
}
if ($p<$paginas)
echo " - <a href=\"index.php?p=" . ($p+1) . "\">Página Siguiente </a>";
echo '</div>';
return;
}
index.php
Código PHP:
<?php
$vector = array("hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau", "hola", "chau" );
require ("paginar.php");
if (isset($_GET[p]))
$p = $_GET[p];
else
$p=1;
paginar($vector, 10, $p);
?>
Pueden ver el ejemplo funcionando en http://www.reweb.com.ar/labs/paginarVector/