credo che abbiate pochi elementi per aiutarmi, quindi provo a ripetere l'intera questione per vedere di chiarirmela anche io nella testa:
$mess_pag è l'array che comprende gli elementi estratti dall' array $row_file che non è altro che l'array i cui elementi sono le righe del file di testo del database (una riga un messaggio).
L'estrazione che avviene con array_slice si basa sul seguente criterio (correggetemi se sbaglio): estraggo dall'array $row_file un numero di elementi pari a $risultati_per_pagina a partire da $inizio.
$inizio è calcolato come $pagina*$risultati_per_pagina - $risultati_per_pagina così se $risultati_per_pagina è 3 (lo imposto io) nella prima pagina si visualizzeranno le prime 3 righe a partire dalla riga 0 (primi tre messaggi) nella seconda pagina i 3 messaggi a partire dalla riga 3 (messaggi dal 4 al 6) ecc.
Ciascuno di questi sottogruppi di 3 messaggi viene messo di volta in volta a seconda della pagina da visualizzare nell'array $mess_pag e per far vedere come primo messaggio l'ultimo inserito viene usato array_reverse.
E' tutto chiaro? una possibile soluzione non potrebbe essere utilizzare array_reverse anzichè nella posizione in cui è (ovvero per scaravoltare il sottoinsieme $mess_pag) per scaravoltare direttamente l'array che contiene come elementi le righe del file di testo?
In questo modo se il file è composto da 10 messaggi sarà (una volta scaravoltato) del tipo
messaggio10
messaggio9
messaggio8
messaggio7
messaggio6
messaggio5
messaggio4
messaggio3
messaggio2
messaggio1
per cui per la prima pagina sarà $inizio = 0 e con array_slice sarà $mess_pag (messaggio10, messaggio9, messaggio8)
Ovviamente sarà necessario eliminare lo scaravoltamento una volta estratti i dati dall'array
Che dite ci sono?