Sortowanie tablicy

0

Witam,
na serwerze mam obrazki w katalogu.Chcę zrobić,aby na stronie wyświetlało się 5 ostatnio dodanych obrazków.

<div id="lastimages2">
<B>Ostatnie fotki</B><BR>
<?php
$katalog = dir("files");
$licznik = 0;// liczba miniaturek
$imgmini = array();

while($plik = $katalog->read() ) {
	if(substr($plik, 0, 3) == "th_" && $plik != "." && $plik != "..")
	{
$czasmod = filemtime("files/$plik");
$imgmini[$licznik][$plik] = $czasmod;

$licznik++;
	}
}

$katalog->close();

sort($imgmini, SORT_NUMERIC);

for($i=0;$i<5;$i++)
{
// tu kod wyswietlajacy 5 miniaturkek w <img>
}

?>
</div>

I tu moje pytanie.Najłatwiej zrealizować chyba zapisywanie informacji o pliku i o jego atrybutach do tablicy.Z tablicą jednowymiarową nie wiem jak sobie poradzić, tzn. można zrobić tablicę asocjacyjną

$imgmini["$plik"] = $czasmod;

ale jak z kolei wyłuskać $plik w pętli wypisującej 5 ostatnich obrazków??

Proszę o jakieś sugestie.
Thx

0

Z tego co piszesz to tych obrazków będzie sporo, nie lepiej by było zapisać gdzieś nazwy ostatnio dodanych obrazków aniżeli przeszukiwać ich setki z datą utworzenia, co z pewnością będzie długo trwało ?
Możesz np zapisać je do pliku txt w postaci: "x.jpg|y.jpg|dqwe.jpg|sa.jpg" i zamieniać to w pięcioelementowe tablice za pomocą implode i explode.
Natomiast podczas dodawania obrazka na serwer zrobić tak:

$ostatnie=explode("|",$string_odczytany_z_pliku);
for ($i=4;$i=1;$i--) {
 $ostatnie[i] := $ostatnie[i-1];
}
$ostatnie[0]=$sciezka_ostatniego_obrazka;
$string_do_zapisania_w_pliku=implode("|",$ostatnie);
0

masz racje, pewnie to bedzie najprostsze i najszybsze (!) rozwiązanie.
Tak zrobię.

Pozdrawiam

0
// ...
$czasmod = filemtime("files/$plik");
$data[$czasmod] = $plik;
// ... 

krsort($data);
array_slice($data, 5); 

foreach ($data as $time => $file)
{
   echo $file . '---' . date('d-m-Y H:i', $time);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1