Ich versuche derzeit, ein mehrdimensionales Array durch seine Unterwerte zu sortieren. Die Struktur des Arrays ist:Usort Problem mit Dezimalzahlen
[0] => Array
(
[id] => 87
[sold] => 50
[stock] => 991
[speed] => 1.5
[days_left] => 660.66666666667
)
[1] => Array
(
[id] => 97
[sold] => 20
[stock] => 120
[speed] => 1.2
[days_left] => 100
)
[2] => Array
(
[id] => 36
[sold] => 2
[stock] => 1020
[speed] => 1.02
[days_left] => 1000
)
Der Code Ich verwende ist:
usort($data, function($a, $b) { return $a[$_GET['sortby']] - $b[$_GET['sortby']]; });
, wo die $ _GET [ 'sortby'] Variable den Schlüssel entspricht.
So weit so gut, alles funktioniert, es sortiert alle Werte richtig AUSSER die Geschwindigkeit! Zuerst dachte ich, es etwas mit den Dezimalzahlen zu tun hat, aber die DAYS_LEFT auch Dezimalstellen und richtig sortiert ..:/
korrekte Ausgabe (DAYS_LEFT):
[0] => Array
(
[id] => 97
[sold] => 20
[stock] => 120
[speed] => 1.2
[days_left] => 100
)
[1] => Array
(
[id] => 87
[sold] => 50
[stock] => 991
[speed] => 1.5
[days_left] => 660.66666666667
)
[2] => Array
(
[id] => 36
[sold] => 2
[stock] => 1020
[speed] => 1.02
[days_left] => 1000
)
Falsche Ausgabe (Geschwindigkeit):
[0] => Array
(
[id] => 97
[sold] => 20
[stock] => 120
[speed] => 1.2
[days_left] => 100
)
[1] => Array
(
[id] => 87
[sold] => 50
[stock] => 991
[speed] => 1.5
[days_left] => 660.66666666667
)
[2] => Array
(
[id] => 36
[sold] => 2
[stock] => 1020
[speed] => 1.02
[days_left] => 1000
)
Hoffe jemand kann mir helfen!
Überprüfen Sie Ihre Ausgänge .. sie sind 100% im Moment gleich .. – Svetoslav
Ja, das sind sie, und das war das Problem! Sie sollten nicht ..;) – Yami