Я нарушал следующую проблему.PHP: как отсортировать массив по значению сначала, а затем по ключу
Я получил этот массив:
[596] => 2
[9] => 2
[358] => 2
[1579] => 1
[156] => 1
[576] => 1
[535] => 1
Как вы можете видеть, значения упорядочены по убыванию пути, но ключи случайным образом. Я бы хотел, чтобы ключи были отсортированы DESC, хотя. Я играл с array_multisort, но я не смог решить проблему с ним. Первой проблемой, с которой я столкнулся, был тот факт, что array_multisort перепроверяет числовые ключи. Я изменил ключи на нечисловой вариант, а именно k596 и т. Д. Это помогло мне сортировать ключи, но не так, как хотелось бы.
[k9] => 2
[k596] => 2
[k358] => 2
[k576] => 1
[k535] => 1
[k1579] => 1
[k156] => 1
Результат, который я хотел бы видеть в конце концов:
[k596] => 2
[k358] => 2
[k9] => 2
[k1579] => 1
[k576] => 1
[k535] => 1
[k156] => 1
ли кто-нибудь может помочь мне здесь? Должен быть простой способ сделать это, правильно?
Странно, я попробовал аналогичный подход, но использовал '$ array' как глобальный и в итоге появился предупреждение« Array был изменен »; это, похоже, работает. –
вместо возврата $ a - $ b; 'return $ a> $ b;', а затем '$ array = array_reverse ($ array, TRUE);' –
@Nouphal Это неправильно. Вам нужно вернуть значение < 0, 0 or > 0, а не булевое. – deceze