您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2024/3/21 23:53:58发布29次查看
该方法可以用于对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元
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product