Hey,
ich habe versucht den Terminkalender von php-kurs.com nachzubauen. Jetzt habe ich ein Problem.
Wenn ich array_multisort andwende werden die Termine nach den Datums nicht richtig geordnet. Verstehe es nicht.
Ausgabe der Tabelle siehe Bild.
mit var_dump auf $termin kommt dies raus :
Code
array(6) { [0]=> string(10) "10.09.2017" [1]=> string(10) "16.10.2017" [2]=> string(10) "18.10.2017" [3]=> string(10) "22.12.2017" [4]=> string(10) "25.09.2022" [5]=> string(10) "25.10.2018" }
Warum ist das Datum 25.09.2022 nicht am Ende ? Verstehe ich nicht.
Mein Code:
PHP
/*
Die einzelnen Schritte:
Erstellen eines mehrdimensionalen Arrays mit Termin, Ort, Bandname
Kontrolle, ob bereits ein Sortierwunsch vorliegt; wenn nicht, sortieren nach Termin
Anzeige als Tabelle
Tabellenkopf mit Links zur Auswahl der Sortierung
bei der Ausgabe der Zeilen wird jede zweite Zeile als Lesehilfe eingefärbt
Datum in deutscher Schreibweise ausgeben
Bandname ausgeben
Ort ausgeben
*/
function TerminKalender(array $planungsDaten, $darstellung){
$terminkalender = $planungsDaten;
foreach ($terminkalender as $nummer => $inhalt) {
$band[$nummer] = $inhalt["bandname"];
$ort[$nummer] = $inhalt["ort"];
$termin[$nummer] = $inhalt["termin"];
}
array_multisort($termin, SORT_ASC, $terminkalender);
//var_dump($termin);
switch($darstellung){
case "tabelle" :
echo "<table border='1'>
<thead>
<tr>
<th> Band </th>
<th> Ort </th>
<th> Termin </th>
</tr>
</thead>
<tbody>";
foreach ($terminkalender as $inhalt) {
echo "<tr>
<td>" . $inhalt['bandname'] ." </td>";
echo "<td>" . $inhalt['ort'] ."</td> ";
echo "<td>" . $inhalt['termin'] ." </td> </tr>";
}
echo "</tbody>";
break;
case "array":
echo "<pre>";
echo print_r($terminkalender);
echo "</pre>";
break;
}
}
$terminkalender = array(
array(
"termin" => "16.10.2017",
"ort" => "Heidelberg",
"bandname" => "Rock you"
),
array(
"termin" => "18.10.2017",
"ort" => "Hannover",
"bandname" => "Stef Music"
),
array(
"termin" => "25.10.2018",
"ort" => "Mannheim",
"bandname" => "join join"
),
array(
"termin" => "25.09.2022",
"ort" => "Mannheim4545",
"bandname" => "join join 33334444"
),
array(
"termin" => "10.09.2017",
"ort" => "Mannheim2222",
"bandname" => "join join 2222"
),
array(
"termin" => "22.12.2017",
"ort" => "Heidelberg22",
"bandname" => "Rock you alll"
)
);
TerminKalender($terminkalender, "tabelle");
Alles anzeigen