104128
Goto Top

PHP Scriptproblem mit array(), foreach und Sortierung

Hier ist ein Auszug aus meinem Quellcode. Vorher werden Daten aus der MySQL gelesen und verarbeitet.

Der Fehler ist nun folgender:
Bei der Ausgabe wird nicht nach Modifikationsdatum sortiert, obwohl über "asort" das Array nach den Timestamps sortiert wird. Kann mir jemand beantworten, wo der Fehler liegt? Danke im voraus.

<?php
...
$data = array();
		
		// Filialausgabe
		print "<b>".$locationdetails['Name']."</b><br />\r\n";  
		
		// Pläne auslesen
		$open_folder = opendir($planfolder);
		
		// Verzeichnis lesen
		while($file = readdir($open_folder)) {
 			// Höhere Verzeichnisse nicht anzeigen!
 			if($file != "." && $file != "..") {  
				$file2 = str_replace(".pdf", "", substr($file, 35, 20));  
 				if($file2 == $locationdetails['Arbeitsplan']) {  
					$filedate = filemtime($planfolder.$file);
					$data[$filedate] = $file;
					
				}
			}
		}
		asort($data, SORT_NUMERIC);
		foreach ($data as $date => $file3) {
			$date = date("d.m.Y - H:i", $date);  
			print $date." Uhr - <a href=\"".$planfolder.$file3."\">".$file3."</a><br />\r\n";  
		}
...
?>

Content-ID: 178051

Url: https://administrator.de/contentid/178051

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

48507
48507 23.12.2011 um 10:58:44 Uhr
Goto Top
Warum sortierst du nicht in der SQL-Abfrage vor?

*edit* Habe den Quelltext falsch interpretiert, Sorry.
104128
104128 23.12.2011 um 11:37:40 Uhr
Goto Top
Hab gesehen, hast editiert ;)

Aber für Alle:
Aus der MySQL werden nur die Daten der Filiale geholt - die Kennung, die der Dateiname enthält (z. B. RE130).
msr972
msr972 23.12.2011 um 12:58:06 Uhr
Goto Top
Dir auch keinen guten Tag,

Weil asort nach dem Value und nicht nach dem Index sortiert.

Und tschüss
104128
104128 23.12.2011 um 13:09:46 Uhr
Goto Top
Hi!

Vielen Dank - das hört sich ja schonmal vielversprechend an.
Gibst du mir denn auch einen Tipp, welche Funktion dafür dann die richtige wäre?

Ich habe nämlich bereits mit usort etc. rumprobiert - komme aber auch da nicht auf das gewünschte Ergebnis.

Lg, Marc
msr972
msr972 23.12.2011 um 13:31:21 Uhr
Goto Top
Hi,

http://php.net/manual/de/function.ksort.php
Das ist dass, was Du suchst.


Grüße
104128
104128 23.12.2011 um 13:46:05 Uhr
Goto Top
Hi msr972!

Super. Ich danke dir! Funktioniert!

Jetzt ein Schönheits-Makel^^ Er sortiert ja nun nach Datum bei den jeweiligen Filialen. Nun habe ich folgende Ausgabe:

30.11.2011 - 10:45 Uhr - ....pdf
07.12.2011 - 16:41 Uhr - ....pdf
12.12.2011 - 10:42 Uhr - ....pdf

Er sortiert nun nach Datum, allerdings das Älteste oben, das Neuste unten.
Ich hab heut hier so einen Stress, dass ich gerade nicht darauf komme, wie man die Funktion "umdreht". Kannst du mir dabei auch helfen?
Ich danke im voraus!

Lg, Marc
msr972
msr972 23.12.2011 um 14:03:20 Uhr
Goto Top
104128
104128 23.12.2011 um 15:55:21 Uhr
Goto Top
msr972...du bist mein Held! Ich danke dir - schnell und umkomplizierte Hilfe face-smile

Lg, Marc