Функции uasort и json_encode c массива делаю объект?
Вы используете uasort, который сортирует ассоциативный массив, соответственно меняя положение и данных и ключей.
Используйте вместо этого usort.
Альтернативное решение (приведено для полноты картины, но правильнее использовать подходящую функцию сортировки):
json_encode(array_values($regions))