PHP按字母排序而不是按数字排序

时间:2017-05-06 12:37:13

标签: php sorting usort

我有一个带有以下叮咬的数组:

A1
A2
A5
A10
B2
B4
C10
B5
C1
B1
C2

我需要以下结果:

A1
B1
C1
A2
B2
C2
B4
A5
B5
A10
C10

有人能帮帮我吗?

2 个答案:

答案 0 :(得分:2)

usort()允许您创建自定义排序规则,因此您可以创建一个将值拆分为字母和数字的规则,并比较这些

this

Demo

答案 1 :(得分:0)

使用array_multisortarray_map不是最有效但相当简洁的做法:

array_multisort(
    array_map(function ($item) { return substr($item, 1); },$array),
    array_map(function ($item) { return $item[0]; },$array),
    $array
);

这是working demo