我有一个邮政编码的数据库表,它只是与邮政编码的第一部分一起存储。当我通过邮政编码查询表格和订单时,我得到以下结果: HG1 - HG2 - HG3 - HG4
- HU1
- HU10
- HU13
- HU2
- HU3
- HU4
- HU5
- HU6
- HU7
- HU8
- HU9
- HX1
- HX2
- HX3
- HX4
- HX5
- HX6
- LN1
- LN2
- LN4
- LN5
- LN6
我想要的是按数字顺序列出的邮政编码以及字母顺序。我已经尝试按长度使用顺序,但是这会按字母顺序混乱,因为它在任何3个之前放入任意2个字符,所以我最终得到: - S6 - S8
- S9
- B66
- BB5
- BB6
- BD2
- BD3
- BD4
- BD5
- BD6
- BD7
- BD8
- BD9
有没有办法解决这个问题而不在数据库中添加额外的列?
提前致谢!
答案 0 :(得分:1)
natsort应该有用。
此函数实现了一种排序算法,该算法以人类维持键/值关联的方式对字母数字字符串进行排序。
List<T>
<强>输出强>
$arr = [
'S9',
'B66',
'BB5',
'BB6',
'BD2',
'BD3',
'BD4',
'BD5',
'BD6',
'BD7',
'BD8',
'BD9'
];
natsort ($arr);
print_r($arr);
答案 1 :(得分:1)