PHP: нисходящий asort не работает?
У меня есть этот сайт с использованием массивов, а затем у меня есть эта функция, которая сортирует эти массивы с помощью asort
, Это выглядит так:
function aasort (&$array, $key) {
$sorter=array();
$ret=array();
reset($array);
foreach ($array as $ii => $va) {
$sorter[$ii]=$va[$key];
}
asort($sorter);
foreach ($sorter as $ii => $va) {
$ret[$ii]=$array[$ii];
}
$array=$ret;
}
Этот алгоритм сортирует массив по 1-10, но он мне понадобится для сортировки по убыванию, по 10-1. Я пытался использовать rsort
без удачи, и я пытался array_reverse
тоже без удачи. Я не знаю, правильно ли я их использовал? Или.. Ну, по крайней мере, мне просто нужен алгоритм, чтобы отсортировать их по убыванию. Любая идея, совет или предложения приветствуются. Спасибо!
2 ответа
Пытаться usort
с определенной функцией заказа, как сказано в документации.
http://www.php.net/manual/en/function.usort.php
function sortSomething($a, $b){
if ($a < $b){
return -1;
}
else if ($a > $b){
return 1;
}
else{
return 0;
}
};
// Now sort the array using the comparison function
usort($array, 'sortSomething');
Это сортирует элементы обычным способом - просто переключите операторы сравнения, и вы получите обратную сортировку.