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-Key: 178051

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

Printed on: April 19, 2024 at 20:04 o'clock

Mitglied: 48507
48507 Dec 23, 2011 at 09:58:44 (UTC)
Goto Top
Warum sortierst du nicht in der SQL-Abfrage vor?

*edit* Habe den Quelltext falsch interpretiert, Sorry.
Mitglied: 104128
104128 Dec 23, 2011 at 10:37:40 (UTC)
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).
Member: msr972
msr972 Dec 23, 2011 at 11:58:06 (UTC)
Goto Top
Dir auch keinen guten Tag,

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

Und tschüss
Mitglied: 104128
104128 Dec 23, 2011 at 12:09:46 (UTC)
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
Member: msr972
msr972 Dec 23, 2011 at 12:31:21 (UTC)
Goto Top
Hi,

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


Grüße
Mitglied: 104128
104128 Dec 23, 2011 at 12:46:05 (UTC)
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
Member: msr972
msr972 Dec 23, 2011 at 13:03:20 (UTC)
Goto Top
Mitglied: 104128
104128 Dec 23, 2011 at 14:55:21 (UTC)
Goto Top
msr972...du bist mein Held! Ich danke dir - schnell und umkomplizierte Hilfe face-smile

Lg, Marc