У меня есть следующий массив:Отсортировать массив по ключам дорожат
Array
(
[0] => Array
(
[Outcome] => 1
[Bookmaker] => PaddyPower
[Updated] => 2015-01-19T09:28:36
[Bet] => 1
[SP] => 4/5
[CP] => 17/20
[line] =>
[Decimal] => 0.85
)
[1] => Array
(
[Outcome] => 1
[Bookmaker] => BetFair
[Updated] => 2015-01-19T09:59:12
[Bet] => 1
[SP] => 1/25
[CP] => 43/50
[line] =>
[Decimal] => 0.86
)
[2] => Array
(
[Outcome] => 1
[Bookmaker] => BetVictor
[Updated] => 2015-01-19T10:29:38
[Bet] => 1
[SP] => 869/1000
[CP] => 869/1000
[line] =>
[Decimal] => 0.87
)
[3] => Array
(
[Outcome] => 1
[Bookmaker] => BetFred
[Updated] => 2015-01-19T09:28:30
[Bet] => 1
[SP] => 4/5
[CP] => 17/20
[line] =>
[Decimal] => 0.85
)
[4] => Array
(
[Outcome] => 1
[Bookmaker] => CoralBet
[Updated] => 2015-01-19T09:28:36
[Bet] => 1
[SP] => 73/100
[CP] => 83/100
[line] =>
[Decimal] => 0.83
)
[5] => Array
(
[Outcome] => 1
[Bookmaker] => Bet365
[Updated] => 2015-01-19T09:35:59
[Bet] => 1
[SP] => 73/100
[CP] => 83/100
[line] =>
[Decimal] => 0.83
)
[6] => Array
(
[Outcome] => 1
[Bookmaker] => WilliamHill
[Updated] => 2015-01-19T09:48:17
[Bet] => 1
[SP] => 4/5
[CP] => 83/100
[line] =>
[Decimal] => 0.83
)
[7] => Array
(
[Outcome] => 1
[Bookmaker] => SkyBet
[Updated] => 2015-01-19T09:29:48
[Bet] => 1
[SP] => 67/100
[CP] => 83/100
[line] =>
[Decimal] => 0.83
)
[8] => Array
(
[Outcome] => 1
[Bookmaker] => Ladbrokes
[Updated] => 2015-01-19T09:29:48
[Bet] => 1
[SP] => 3/4
[CP] => 4/5
[line] =>
[Decimal] => 0.8
)
)
и я пытаюсь отсортировать его по значению в ключе «Десятичного» в.
Я создал функцию, чтобы выполнить сортировку по десятичному значению, но по какой-то причине, как вы можете видеть по моему выше массиву, он не совсем сортирует его, поскольку 0,86 - это лучшее значение, чем 0,85.
usort($outcomes, 'sort_by_decimal');
function sort_by_decimal ($a, $b)
{
return $a['Decimal'] - $b['Decimal'];
}
Thank you.
Привет @axiac большого спасибо за объяснение. Однако теперь он перестроил мой массив с «лучшим», как в самом высоком в самом низу массива, см .: http://pastebin.com/NJ2KCB5M – StuBlackett
Это зависит от вашей функции сравнения, что является «лучшим». Функция 'usort()' сортирует элементы «восходящие», т. Е. Самые маленькие сначала. Если вам нужна самая большая первая, тогда измените функцию 'sort_by_decimal()', чтобы вернуть '-1', когда' $ a' больше, чем '$ b' (и' + 1' они, конечно, находятся в противоположных отношениях). – axiac
Большое спасибо @axiac, отменяющий логику, получил это, чтобы работать – StuBlackett