ordner auslesen und reihenfolge umkehren
c.franke
- php
0 Snucky0
Der Martin
0 Johannes Zeller
Hallo,
ich habe folgenden Code:
<?
$verzeichnis = "blah/";
$dir = opendir($verzeichnis);
while($datei = readdir($dir)) {
if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3"))
{
echo "Ausgabe";
}
}
?>
ich will nun aber die reihenfolge umkehren, also aus:
061222_test.mp3
061225_test.mp3
wird dann:
061225_test.mp3
061222_test.mp3
geht das? wenn ja, wie?
ich will nun aber die reihenfolge umkehren,
Dann les die Daten doch zuerst in ein Array:
$verzeichnis = "blah/";
$treffer = array();
$dir = opendir($verzeichnis);
while($datei = readdir($dir)) {
if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3"))
{
array_push($treffer, $datei);
}
}
Und nutze die Funktion sort() bzw. rsort() in deinem Fall. Es wird anhand des Wertes sortiert. Eine Übersicht über die Gewichtung findest du in der Referenz.
Moin,
ich habe folgenden Code:
[...]
ich will nun aber die reihenfolge umkehren, also aus:
was meinst du mit "umkehren"? Bisher hast du ja überhaupt keine definierte Reihenfolge; du gibst die Einträge so aus, wie du sie aus dem Filesystem liest. Das ist *möglicherweise* die Reihenfolge, in der die Dateien angelegt wurden, kann aber ebensogut eine völlig willkürliche Reihenfolge sein.
Falls du die Verzeichniseinträge nach irgendeinem Kriterium sortieren willst, musst du sie auf jeden Fall erst mal sammeln (der Kollege hat schon angedeutet, wie's geht), und dann das Array sortieren.
Bei einer relativ einfachen Sortierung nach Namen geht das mit sort(), bei anspruchsvolleren Sortierkiriterien (z.B. Größe, Erstellungsdatum) könnte dir usort() weiterhelfen.
Frohe Feiertage,
Martin
Hallo,
suchst du vielleicht array_reverse()? Aber ich denke auch, wie Martin und Snucky, dass du das Array möglicherweise vorher sortieren willst.
Schöne Grüße,
Johannes