排序我有这种形式的文件名的数组:通过正则表达式组在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