Ich habe diese array
: -Art mehrdimensionales Array nach Datum
array (size=8)
0 =>
array (size=2)
'date' => string '17/05/2016 00:00:00' (length=19)
'reason' => string 'DNA' (length=3)
1 =>
array (size=2)
'date' => string '10/05/2016 00:00:00' (length=19)
'reason' => string 'UTA' (length=3)
2 =>
array (size=2)
'date' => string '03/05/2016 00:00:00' (length=19)
'reason' => string 'DNA' (length=3)
3 =>
array (size=2)
'date' => string '26/04/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
4 =>
array (size=2)
'date' => string '31/05/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
5 =>
array (size=2)
'date' => string '24/05/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
6 =>
array (size=2)
'date' => string '07/06/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
7 =>
array (size=2)
'date' => string '14/06/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
ich es von ‚date‘ sortieren wollen
Ich habe versucht, die beiden folgenden Methoden, aber das Ergebnis (unten) ist nicht richtig sortiert.
usort($course, function($a, $b) {
return $a['date'] - $b['date'];
});
_______________________________
function date_compare($a, $b)
{
$t1 = strtotime($a['date']);
$t2 = strtotime($b['date']);
return $t1 - $t2;
}
usort($course, 'date_compare');
Dies ist die "sortiert" Array
array (size=8)
0 =>
array (size=2)
'date' => string '24/05/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
1 =>
array (size=2)
'date' => string '14/06/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
2 =>
array (size=2)
'date' => string '31/05/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
3 =>
array (size=2)
'date' => string '26/04/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
4 =>
array (size=2)
'date' => string '17/05/2016 00:00:00' (length=19)
'reason' => string 'DNA' (length=3)
5 =>
array (size=2)
'date' => string '03/05/2016 00:00:00' (length=19)
'reason' => string 'DNA' (length=3)
6 =>
array (size=2)
'date' => string '07/06/2016 00:00:00' (length=19)
'reason' => string 'true' (length=4)
7 =>
array (size=2)
'date' => string '10/05/2016 00:00:00' (length=19)
'reason' => string 'UTA' (length=3)
Kommt die Daten aus der Datenbank? Wenn ja, warum nicht zuerst über mysql sortieren? –
Zuerst 'usort()' wird nicht funktionieren, da Sie Zeichenfolgen, nicht Daten vergleichen. Du meinst also die Funktion "date_compare" funktioniert nicht? Verwenden Sie PHPFiddle, um ein Beispiel zu geben: http://sandbox.onlinephpfunctions.com/ – Justinas
String '24/05/2016 00: 00: 00' kann nicht in datetime konvertiert werden, da strtotime den Monat zuerst erwartet. Benutze create from format - http://php.net/manual/en/datetime.createfromformat.php – splash58