加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何利用php array_multisort函数对数据库结果进行复杂排序

发布时间:2022-07-05 17:21:59 所属栏目:PHP教程 来源:互联网
导读:如何利用php array_multisort函数 对数据库结果进行复杂排序 首先讲一下需求:数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序。 下面将一下array_multisort函数 array_multisort() 可以用来一次对多个数组
  如何利用php array_multisort函数 对数据库结果进行复杂排序
 
  首先讲一下需求:数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序。
  下面将一下array_multisort函数
  array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
 
  关联(string)键名保持不变,但数字键名会被重新索引。
 
  排序顺序标志:
  SORT_ASC – 按照上升顺序排序
  SORT_DESC – 按照下降顺序排序
 
  排序类型标志:
  SORT_REGULAR – 将项目按照通常方法比较
  SORT_NUMERIC – 将项目按照数值比较
  SORT_STRING – 将项目按照字符串比较
 
  每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 – 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。
 
  输入数组被当成一个表的列并以行来排序——这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
 
  本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
 
  这样我们现在有这样一组数据
 
  复制代码 代码如下:
 
  // 这是一组从数据库查询出来的结果
  $data[] = array('volume' => 67, 'edition' => 2);
  $data[] = array('volume' => 86, 'edition' => 1);
  $data[] = array('volume' => 85, 'edition' => 6);
  $data[] = array('volume' => 98, 'edition' => 2);
  $data[] = array('volume' => 86, 'edition' => 6);
  $data[] = array('volume' => 67, 'edition' => 7);
  //我们需要先做出一个volume+edition的数组来
  foreach($data as $val){
       $arr[] = $val['volume'] + $val['edition'];
  }
  // 将$arr根据降序排列
  // 把 $data 作为最后一个参数,以通用键排序
  array_multisort($arr, SORT_DESC, $data);
 
  这样就实现了我们需要的功能。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读