проблема usort с десятичными числами
В настоящее время я пытаюсь отсортировать многомерный массив по его значениям. Структура массива:
[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
)
Код, который я использую:
usort($data, function($a, $b) { return $a[$_GET['sortby']] - $b[$_GET['sortby']]; });
где переменная $ _GET ['sortby'] равна ключу.
Пока все хорошо, все работает, все значения сортируются правильно, КРОМЕ скорости! Во-первых, я думал, что это как-то связано с десятичными числами, но days_left также включает десятичные числа и сортируется правильно ..: /
Правильный вывод (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
)
Неверный вывод (скорость):
[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
)
Надеюсь, кто-нибудь может мне помочь!