Массивы сортируются всегда с изменением самих индексов. То есть, были индексы 1,2,5,6, а после сортировки станут 0, 1, 2, 3.
Если у вас стоит задача оставить доступ по индексу, но и сделать возможность сортировать, то придётся сортировать при выводе, создавая временный массив.
Или ещё вариант — для быстроты создавать зеркальный индекс (по нужному полю) и выводить по нему. Ну и соотв. при изменениях синхронизировать этот индекс. Это быстрее, чем каждый раз сортировать.