基本上我需要对可以包含年份或单词的列表进行排序,我希望将最近几年放在最顶层,以及所有年份以下的任何单词。
所以如果列表包含2012,2013,2014,苹果,香蕉,沙发;我希望它按照这样排序:
2014, 2013年, 2012年, 苹果, 香蕉, 榻
怎么可以这样做?
答案 0 :(得分:1)
有许多内置的PHP排序功能,但它们不会涵盖所有奇怪的边缘情况。例如,如果您没有按不同方向排序,则几乎可以使用像natsort()
这样的简单内容。对于大多数类型的自定义排序,如您想要的(通过数字降序,然后单词升序),您可能最好编写自己的简单排序比较功能!
因此请查看usort()
http://php.net/manual/en/function.usort.php
基本上,你传递数组和你编写的函数返回1,0或-1,这取决于两个排序元素的所需比较,你将返回一个排序版本的数组。
或者,您可能希望首先对来自数据库的数据进行排序,因为这通常要快得多。