单数组排序
sort函数升序排序
bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] )
代码如下 | 复制代码 |
$fruits = array("lemon", "orange", "banana", "apple"); |
-rsort降序排列--
代码如下 | 复制代码 |
$fruits = array("lemon", "orange", "banana", "apple"); |
比如有个多维数组:
代码如下 | 复制代码 |
$arr = array( 'd' => array('id' => 5, 'name' => 1, 'age' => 7), 'b' => array('id' => 2,'name' => 3,'age' => 4), 'a' => array('id' => 8,'name' => 10,'age' => 5), 'c' => array('id' => 1,'name' => 2,'age' => 2) ); |
需要对二维数组中的 age 项排序。
需要用到PHP的内置函数 array_multisort(),
array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。
代码如下 | 复制代码 |
// 取得列的列表 foreach ($data as $key => $row) { $volume[$key] = $row['volume']; $edition[$key] = $row['edition']; } |
// 将数据根据 volume 降序排列,根据 edition 升序排列
// 把 $data 作为最后一个参数,以通用键排序
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
数据集合现在排好序了,结果如下:
volume | edition
-------+--------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
//自定义函数:
代码如下 | 复制代码 |
function multi_array_sort($multi_array,$sort_key,$sort=SORT_ASC) { if(is_array($multi_array)) { foreach ($multi_array as $row_array) { if(is_array($row_array)) { $key_array[] = $row_array[$sort_key]; } else { return false; } } } else { return false; } array_multisort($key_array,$sort,$multi_array); return $multi_array; } |
//处理
代码如下 | 复制代码 |
print_r(multi_array_sort($arr,'age')); //输出 Array ( [c] => Array ( [id] => 1 [name] => 2 [age] => 2 ) [b] => Array ( [id] => 2 [name] => 3 [age] => 4 ) [a] => Array ( [id] => 8 [name] => 10 [age] => 5 ) [d] => Array ( [id] => 5 [name] => 1 [age] => 7 ) ) |
实际上真正在排序的时候还有很多方法可以使用,比如php的array数组自带的 arsort(),asort(),ksort(),krsort(),natsort(),natcasesort(),rsort(),usort(),array_multisort() 和 uksort()。
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级