Hallo,
ich habe ein Problem, ich verwende eine Funktion um ein Array das mit Objekten gefüllt ist nach einem Datum-Attribut zu sortieren.
Das Problem jedoch ist, dass die Sortierung zwar ganz gut ist, aber immerwieder zwischendrin falsch sortiert wurde... somit ist diese funktion sinnlos für mich.
Kann mir evtl. jemand weiterhelfen?
Wenn ihr noch weiter Einblick in den Code haben möchtet, bitte bescheid sagen!
Hier ein kleiner Ausschnitt nach dem Sortieren
die orangen daten sind fehlerhaft bzw. sollten an einer anderen stelle "hinsortiert" werden.
ich habe ein Problem, ich verwende eine Funktion um ein Array das mit Objekten gefüllt ist nach einem Datum-Attribut zu sortieren.
Das Problem jedoch ist, dass die Sortierung zwar ganz gut ist, aber immerwieder zwischendrin falsch sortiert wurde... somit ist diese funktion sinnlos für mich.
Kann mir evtl. jemand weiterhelfen?
Wenn ihr noch weiter Einblick in den Code haben möchtet, bitte bescheid sagen!
Quellcode
- function sort_arr($arr) {
- if ($arr != null) {
- foreach ($arr as $sf) {
- $date = $sf->get_meta("meta_datum"); // datum ist im format dd.mm.yyyy
- $day = explode(".", $date)[0];
- $month = explode(".", $date)[1];
- $year = explode(".", $date)[2];
- $sf->tmpAttribute = $year . "-" . $month . "-" . $day;
- }
- uasort($arr, function($a, $b) {
- $aval = strtotime($a->tmpAttribute );
- $bval = strtotime($b->tmpAttribute );
- if ($aval == $bval) {
- return 0;
- }
- return $aval < $bval ? 1 : -1;
- });
- return $arr;
- }
- return null;
- }
Hier ein kleiner Ausschnitt nach dem Sortieren
die orangen daten sind fehlerhaft bzw. sollten an einer anderen stelle "hinsortiert" werden.
14.10.2014
16.09.2014
17.09.2014
25.09.2014
30.09.2014
02.10.2014
02.10.2014
02.10.2014
10.10.2014
10.10.2014
11.10.2014
30.09.2014
12.11.2014
13.11.2014
18.11.2014