排序我有這種形式的文件名的數組:通過正則表達式組在PHP
「A - 1.2 - 地板Plan.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";
我有一個適當的分組中的文件名下面的正則表達式:
^([A-Z]+?) ?- ?([0-9]+)\.([0-9]+)(\.([0-9]+))?.*$
我想按組1排序的數組,然後按組2,然後按組3 。如果第5組存在,則最後按組5排序。忽略組4.
按字典順序排列類別可能更容易。如果是這樣,那就沒事了;但如果按照上述順序排序,則更爲可取。
有沒有辦法用PHP來做到這一點?
不應該是這樣的順序:'A - 1.0, A - 1.2,A - 2.1.0,A - 2.1.1,A - 2.2,C - 1.0,E - 1.0,ESC - 1.0,M - 1.0,P - 1.0' – Krzysztof
@Lolo,不是嗎?我比較你的排序版本和我的。我找不到區別。 – objectivesea
你有:[...],** ESC,C,M,E **,[...] 我只是想知道爲什麼不:[...] ** C,E,ESC,M ** ,[...] – Krzysztof