PHP - 对带有数字的文件名数组进行排序?

8
有人可以告诉我如何对包含以数字开头的文件名的数组进行排序吗?因为以11、12、13等开头的字符串被认为比2低,这样会使我的结果偏差,就像这样:
[0] "1. File one.pdf"
[1] "11. File eleven.pdf"
[2] "12. File twelve.pdf"
[3] "2. File two.pdf"
[4] "3. File three.pdf"
有什么办法可以正确地对它们进行排序吗?
2个回答

8
您可以使用 natsort 或者 natcasesort 来排序,后者不区分大小写。如果有其他字符(例如变音符号),您需要确保使用适当的 locale
如果这还不够,也就是说您需要排序数字字面值(如“one”、“two”、“three”),您可以使用 usort,它允许您将自定义回调函数作为比较函数。

太好了!谢谢你,以及所有提供答案的人。 - Tim

2

您可以使用natsort函数来获得自然排序。

看它。


1
链接本来应该是什么?现在已经失效了。 - Joel G Mathew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接