У меня есть массив имен файлов этой формы:
«A – 1.2 – План этажа.PDF»
Мне нужно сначала отсортировать массив по категориям в начале, в следующем порядке:
1. Category: A 2. Category: ESC 3. Category: C 4. Category: M 5. Category: E 6. Category: P
Затем мне нужно отсортировать массив по номерам, следующим за категорией.
Вот пример массива, который нужно отсортировать:
$arr[0] = "A - 1.0 - Title Page.PDF"; $arr[1] = "A - 2.2 - Enlarged Floor Plans"; $arr[2] = "A - 2.1.0 - Structural Details.PDF"; $arr[3] = "E - 1.0 - Electrical Title Page.PDF"; $arr[4] = "A - 1.2 - Floor Plan.PDF"; $arr[5] = "P - 1.0 - Plumbing Title Page.PDF"; $arr[6] = "A - 2.1.1 - Structural Details.PDF"; $arr[7] = "C - 1.0 - Civil Title Page.PDF"; $arr[8] = "M - 1.0 - Mechanical Title Page.PDF"; $arr[9] = "ESC - 1.0 - Erosion Control Plan.PDF";
В идеале этот массив затем
$arr[0] = "A - 1.0 - Title Page.PDF"; $arr[1] = "A - 1.2 - Floor Plan.PDF"; $arr[2] = "A - 2.1.0 - Structural Details.PDF"; $arr[3] = "A - 2.1.1 - Structural Details.PDF"; $arr[4] = "A - 2.2 - Enlarged Floor Plans"; $arr[5] = "ESC - 1.0 - Erosion Control Plan.PDF"; $arr[6] = "C - 1.0 - Civil Title Page.PDF"; $arr[7] = "M - 1.0 - Mechanical Title Page.PDF"; $arr[8] = "E - 1.0 - Electrical Title Page.PDF"; $arr[9] = "P - 1.0 - Plumbing Title Page.PDF";
У меня есть следующее регулярное выражение для правильной группировки имен файлов:
^([AZ]+?) ?- ?([0-9]+)\.([0-9]+)(\.([0-9]+))?.*$
Я хочу, чтобы массив отсортировался по группе 1, затем по группе 2, затем по группе 3. Если существует группа 5, то сортируйте последнюю по группе 5. Игнорируйте группу 4.
Может быть проще отсортировать категории лексикографически. Если так, то все будет хорошо; хотя было бы предпочтительнее, если бы они были отсортированы в порядке, указанном выше.
Есть ли способ сделать это с помощью PHP?