Seite 1 von 2
nach datum sortieren
Verfasst: 23.04.2007 15:47
von kolja
tach allerseits
hier gibt es oft ganz kurze antworten mit nem link auf selphp oder so
und weil ich es selbst nicht finde
aber darum geht es:
ich habe einen ordner voller ordner voller bilder:
Code: Alles auswählen
fotos/
fotos/album1
fotos/album1/foto1 bis fot030
fotos/album2
fotos/album2/foto1 bis fot030
nun möchte ich aus dem neusten album (der zuletzt erstellte ordner)
zwei zufällige bilder anzeigen
nur häge ich schon an der stelle wo php den neusten ordner auswählen soll..
ich habe ein array, welches so aussieht:
Code: Alles auswählen
Array ( [0] => NeuerOrdner [1] => test [2] => wert [3] => ralph [4] => Flyer )
nur wie bekomme ich da den neusten nach vorne ??
kolja
wie gesagt, hab schn mein dickes buch gewälzt
und auch schon gegeoogelt aber nicht einmal einen ansatzt gefunden...
Verfasst: 23.04.2007 16:07
von Miriam
Weil wir gerade bei den Links sind --->
Kick
Verfasst: 23.04.2007 16:11
von kolja
danke, aber warum ist das so umständlich ??
erst das datum auslesen, dannwieder zurück zum namen
und den dann erst ausgeben...
naja ich setzte mich mal drann
kolja
Verfasst: 23.04.2007 16:17
von Miriam
Hm, der Neueste ist doch durch das Datum zum Neuesten geworden, nicht durch den Namen.
Verfasst: 23.04.2007 17:33
von kolja
also entweder spinnt phpbb.de mein rechner oder das ganze internet...
das ist das dritte mal das ich versuche diesen beitrag zu schreiben
aber BTT:
mein array habe ich um die timestampangaben ergänzt,
und sortiert!
nun sieht die ausgabe so aus:
Code: Alles auswählen
Array ( [4] => Array ( [1177284668] => Flyer ) [3] => Array ( [1177066156] => ralph ) [2] => Array ( [1176862058] => wert ) [1] => Array ( [1176860769] => test ) [0] => Array ( [1176860860] => NeuerOrdner ) )
nur wie gebe ich jetzt den letzten wert (in diesem falle "Flyer") aus ??
kolja
edit ich bemerke gerade, dass meine ausgabe nicht so aussieht,
wie die die ich in den beispielen immer sehe...
aber soviel kann hier doch nicht falsch sein:
Code: Alles auswählen
for($i=0;$i<count($verzeichnisinhalt);$i++)
{
$array[$i] = array( filemtime($verzeichnisinhalt[$i]) => $verzeichnisinhalt[$i]);
}
kolja
Verfasst: 23.04.2007 18:32
von Miriam
Warum packst Du nicht alles in ein Array nach dem Muster
Code: Alles auswählen
$feld=array('dateiname1' => 'datum1', 'Dateiname2' => 'datum2');
dann sortierst Du das Array mit
und flippst es mit array_flip()
und schnappst Dir das letzte Element des Array $feld mit:
da Du aber nun das Array anders herum aufgebaut hast, musst Du dann eben zweimal array_flip() benutzen.
Bsp.:
Code: Alles auswählen
<?php
$feld = Array ( '1177284668' => 'Flyer', '1177066156' => 'ralph', '1176862058' => 'wert', '1176860769' => 'test', '1176860860' => 'NeuerOrdner');
$feld = array_flip($feld);
asort($feld);
$feld = array_flip($feld);
$last = array_pop($feld);
print($last);
?>
Kannst es aber auch anders machen.
Verfasst: 23.04.2007 18:47
von Pyramide
Code: Alles auswählen
$newest_time = $newest_file = 0;
if ($dir = opendir('bilder'))
{
while (($file = readdir($dir)) !== false)
{
if(filemtime($file) > $newest_time)
{
$newest_file = $file;
$newest_time = filemtime($file);
}
}
closedir($dh);
}
Verfasst: 23.04.2007 19:05
von kolja
Miriam hat geschrieben:Warum packst Du nicht alles in ein Array nach dem Muster
Code: Alles auswählen
$feld=array('dateiname1' => 'datum1', 'Dateiname2' => 'datum2');
weil ich leider nicht verstehe wie ich das machen soll...
ich muss doch irgendwie in der for-schleife bleiben, oder nicht ?
kolja
Verfasst: 23.04.2007 19:07
von Miriam
???
Und was ist mit den Verzeichnissen?
Verfasst: 23.04.2007 19:11
von kolja
@ pyramide
ich glaub das ist was ich gesucht habe
ist nur schade um miriams bemühungen
danke euch beiden
kolja