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');

Это сортирует элементы обычным способом - просто переключите операторы сравнения, и вы получите обратную сортировку.

Используйте arsort.........

      arsort($arr);
Другие вопросы по тегам