单数组排序
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()。
- 还没有人评论,欢迎说说您的想法!
 


