Функция array_multisort первый массив (сортирующий) - фактически маска для сортировки второго (основного) массива. Задаем его элементы так, чтобы их порядок после сортировки давал нужный нам порядок основного массива. Сортирующий массив будет отсортирован SORT_ASC (по умолчанию, если не указано иного), а элементы основного массива будут отсортированы в соответствии с элементами сортирующего массива. Например