Сохранение ключа индекса массива при сортировке многомерного массива с помощью PHP

array(10) { [1019]=> array(3) { ["quantity"]=> int(0) ["revenue"]=> int(0) ["seller"]=> string(5) "Lenny" } [1018]=> array(3) { ["quantity"]=> int(5) ["revenue"]=> int(121) ["seller"]=> string(5) "Lenny" } [1017]=> array(3) { ["quantity"]=> int(2) ["revenue"]=> int(400) ["seller"]=> string(6) "Anette" } [1016]=> array(3) { ["quantity"]=> int(25) ["revenue"]=> int(200) ["seller"]=> string(6) "Samuel" } [1015]=> array(3) { ["quantity"]=> int(1) ["revenue"]=> int(300) ["seller"]=> string(6) "Samuel" } [1014]=> array(3) { ["quantity"]=> string(2) "41" ["revenue"]=> string(5) "18409" ["seller"]=> string(6) "Samuel" } } 

Я работаю с массивом выше. Этот многомерный массив называется $stats .

Я хотел бы отсортировать этот массив по количеству.

Так что многоадресный массив имеет свой первый массив 1016, то 1018, 1017 и так далее.

Я сделал это:

  function compare($x, $y) { if ( $x['quantity'] == $y['quantity'] ) return 0; else if ( $x['quantity'] > $y['quantity'] ) return -1; else return 1; } usort($stats, 'compare'); 

Который работает просто отлично!

Но проблема в том, что индекс заголовка (ID, 1019, 1018, 1017 и т. Д.) Исчезает при его сортировке. Я хотел бы сохранить индексы массива.

Как я могу это сделать?

Я думаю, что вам нужен uasort

ОТ PHP DOC

Сортируйте массив с пользовательской функцией сравнения и поддерживайте ассоциацию индексов

пример

  uasort($stats, 'compare');