Paginación de matrices o Arrays con PHP

Paginación de matrices o Arrays con PHP

Uno de los elementos más comunes en la programación son las matrices conocidos mayormente por su nombre en inglés “Arrays”. Estos elementos son la base de la estructuración de datos de cualquier índole, desde una simple línea de registro hasta una complicada estructura de relación en base de datos. Todos son matrices o arrays.

El mayor uso que vemos en la web con las matrices o arrays es la aplicación de estos dentro de loops, desde el resultado de una consulta a una base de datos o bien una lista de elementos los cuales queremos tener a mano de manera continua y fácil. Si bien es cierto que por lo general, delimitamos la cantidad de elementos que queremos presentar de la consulta a la base de datos o de la lista mediante una valor externo asignado a una variable para cortar la cantidad que deseamos presentar o hasta que el valor de una variable sea igual al valor del nodo recurrente dentro de la matriz o array.


Sabemos que para paginar una matriz de resultados de una base de datos como mysql es bastante sencillo mediante el comando LIMIT:

$Query = “Select * From $table LIMIT 0, 10;

De esta forma indicamos desde que indice queremos indicar nuestra matriz (0) y la cantidad de elementos devolver (10). Ahora, como hacemos lo mismo si los valores están contenidos en una matriz unidimensional?

Una matriz o array unidimensional se ve de la siguiente manera:

$matriz = array(‘World’, ‘Wide’, ‘Web’);

En esta matriz, conocemos los valores y pos su posición la llave o ‘key’ que marca su posición dentro del a matriz, que sería: 0,1,2

Ya que lo que deseamos es presentar datos específicos de un array para paginar nuestra matriz o array, PHP cuenta con una función que nos permite extraer bloques de la matriz especificando desde que key queremos iniciar y que cantidad de valores queremos devolver; exactamente igual que con el comando LIMIT de MySql. Esta función es:

array_slice();

Tomemos como ejemplo nuestra matriz $matriz previamente declarada.solo que ahora agregaremos una valor adicional para tener cuatro valores y crear nuestra idea de una manera mas gráfica:

$matriz = array(‘Weblantropia’,’World’, ‘Wide’, ‘Web’);

Ahora, supongamos que en nuestra paginación queremos presentar los resultados de dos en dos.

$pagina_1 = array_slice($matriz, 0, 2);

$pagina_2 = array_slice($matriz, 2, 2);

Nuestros nuevas matrices serían:

$pagina_1 => ‘Weblantropia’,’World’

$pagina_2 => ‘Wide’,’Web’

De esta manera hemos creado dos matrices o arrays. Cada uno contiene dos valores, el primero partiendo desde el valor con la llave 0 y corriendo dos posiciones; la segunda partiendo de la llave 2 y corriendo dos posiciones.

Una observación es que array_slice no permite llaves negativas, es decir, si colocamos nuestra llave inicial con un valor negativo como por ejemplo -2, entonces la función tomaría como llave o key inicial el ultimo valor hacia la derecha, recorriendo desde la desde la derecha hasta la izquierda toda la matriz o array.