欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

对查询结果集进行正向、逆向和自然排序

程序员文章站 2022-06-08 12:24:44
...
该方法可以用于对ThinkPHP的查询数据集(模型类的select方法的返回值)进行动态排序,支持正向、逆向和自然排序。/**
+----------------------------------------------------------
* 对查询结果集进行排序
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param array $list 查询结果
* @param string $field 排序的字段名
* @param string $sortby 排序类型
* asc正向排序 desc逆向排序 nat自然排序
+----------------------------------------------------------
* @return array
+----------------------------------------------------------
*/
function list_sort_by($list,$field, $sortby='asc') {
if(is_array($list)){
$refer = $resultSet = array();
foreach ($list as $i => $data)
$refer[$i] = &$data[$field];
switch ($sortby) {
case 'asc': // 正向排序
asort($refer);
break;
case 'desc':// 逆向排序
arsort($refer);
break;
case 'nat': // 自然排序
natcasesort($refer);
break;
}
foreach ( $refer as $key=> $val)
$resultSet[] = &$list[$key];
return $resultSet;
}
return false;
}
使用示例(下面的示例代码仅在ThinkPHP环境下面有效):$Blog = M('Blog');
$list = $Blog->limit(10)->select();
$list1 = list_sort_by($list,'status','desc'); // 对结果集按照status字段逆向排序
$list2 = list_sort_by($list,'cate_id','asc'); // 对结果集按照cate_id字段正向排序

AD:真正免费,域名+虚机+企业邮箱=0元