利用数组排序
前一阵写个小代码,因为涉及到的数据库数据不是很多,我将全部数据都写入到一个缓存数组中,这样进行列表的时候不会再次进行数据库查询(虽然数据不多,但由于整个系统的数据库压力很大负载比较高因此能不去查询数据库就尽量不去查询)。
array_multisort — 对多个数组或多维数组进行排序
说明
bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )如果成功则返回 TRUE,失败则返回 FALSE。
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
排序顺序标志:
SORT_ASC – 按照上升顺序排序
SORT_DESC – 按照下降顺序排序
排序类型标志:
SORT_REGULAR – 将项目按照通常方法比较
SORT_NUMERIC – 将项目按照数值比较
SORT_STRING – 将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 – 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。
不过,由于需要对数组进行各种方式排序,所以开始的时候觉得有点麻烦,想到常用的一个函数sort()可以简单的进行排序根据php函数的命名规则我想会不会有多数组的呢?哈哈,于是查询了一下array_multi_sort没有?再试array_multisort,哈哈,果然存在一个array_multisort(),详细看了一下说明就是我需要的函数。
另外为了加强记忆和理解在搜索引擎上搜索了一下,才发现学无止境啊,这个函数其实应该算做经常性和须灵活使用的函数之列。想起以前做的一个小项目,也涉及到数组排序问题,记得当时没考虑内置函数,自己写了一个函数那个复杂程序实在是头痛,现在想来真的是浪费时间:(
标签:multisort, PHP, SORT, SQL