cómo ordenar con krsort()

truji
27 de Noviembre del 2003
Hola,

Tengo un sistema de noticias insertadas en un fichero de texto, cada línea está separada por "n" y dentro de ella hay diferentes registros como "título", "texto", "imagen" separados por ||.

El problema es que se inserta la notícia nueva al final del fichero, y al leer las notícias empieza a leer por la primera línea de datos,
de este modo la notícia más reciente (que es la última línea del texto) se visualiza la última.

¿Cómo puedo hacer para que empiece a leer por la última línea del fichero de texto, y así se visualice primero la notícia más reciente?

Lo he probado con krsort() y me va bien, pero me visualiza toda la línea completa, necesito que me lea/visualice sólo por ejemplo el primer dato y el tercer dato de la línea (datos separados por ||).

Éste es el código que he utilizado:

<?php
// ordenar el array

$thenews = file("admin/news.dat"); //fichero de texto donde hay las noticias insertadas

krsort($thenews);
reset($thenews);

print ("Notícias ordenadas de más reciente a más antigua:<BR>");

for ($n = 0; $n < count($thenews); $n++)
$getdata = explode("||", $thenews[$n]); //para seleccionar cada registro dentro de la línea

{
$Line = each ($thenews); //para visualizar todas las líneas

print ("$Line[value]<BR>n"); //aquí se visualiza toda la línea de la notícia separados los registros por ||

print ("$getdata[2]<br>n$getdata[3]<BR>n"); //aquí se visualiza los registros 2 y 3 separados por || en el archivo de texto.

}
// final ordenar el array

?>

Perdonad el rollazo, pero me quiero asegurar que lo explico bien.

gracias por adelantado!

Ruben
27 de Noviembre del 2003
¿Por que no lo recorres al reves?->previous()
¿Por que no usas base de datos? Es mas rapido, eficiente y evitas esos problemas. :-?