Obecnie próbuję sortować tablicę wielowymiarową według jej wartości podrzędnych. Struktura tablicy brzmi:Błąd usortowania z liczbami dziesiętnymi
[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
)
Kod używam jest:
usort($data, function($a, $b) { return $a[$_GET['sortby']] - $b[$_GET['sortby']]; });
gdzie zmienna $ _GET [ 'sortby'] równa się klucz.
Do tej pory wszystko działało dobrze, wszystko poprawnie sortuje Z WYJĄTKIEM prędkości! Najpierw myślałem, że to ma coś wspólnego z liczbami po przecinku, ale DAYS_LEFT obejmują również miejsca po przecinku i są klasyfikowane poprawnie ..:/
Prawidłowe wyjście (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
)
Zła moc (prędkość):
[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
)
Mam nadzieję, że ktoś może mi pomóc!
Sprawdź swoje wyjścia .. są one w 100% takie same w tej chwili .. – Svetoslav
Tak, są, i to był problem! Nie powinny być ..;) – Yami