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

 更新时间:2013年06月08日 16:46:43   作者:  
本篇文章是对用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中in_array函数用法探究

    php中in_array函数用法探究

    这篇文章主要介绍了php中in_array函数用法,对in_array函数参数匹配的用法进行了较为深入的探究,有助于较为全面的理解in_array函数的用法,需要的朋友可以参考下
    2014-11-11
  • PHP可逆加密/解密函数分享

    PHP可逆加密/解密函数分享

    很多项目的会员系统,都要求要有记住登录功能,在通过cookies实现功能是,由于要将客户信息直接保存到cookies,如果直接写入cookies势必会带来安全隐患,因此通过可逆加密后再保存到cookies相对就安全了
    2012-09-09
  • 让PHP更快的提供文件下载的代码

    让PHP更快的提供文件下载的代码

    一般来说, 我们可以通过直接让URL指向一个位于Document Root下面的文件, 来引导用户下载文件
    2012-06-06
  • PDO版本问题 Invalid parameter number: no parameters were bound

    PDO版本问题 Invalid parameter number: no parameters were bound

    发现在客户的某个PHP版本下,执行某类操作的时候,总是会报如下错误 Invalid parameter number: no parameters were bound,经google,发现是php版本过低导致
    2013-01-01
  • php中文验证码实现方法

    php中文验证码实现方法

    这篇文章主要介绍了php中文验证码实现方法,涉及php中文字体及字符串操作的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PHP实现预定义钩子和自定义钩子的简单示例

    PHP实现预定义钩子和自定义钩子的简单示例

    这篇文章主要给大家介绍了PHP实现预定义钩子和自定义钩子,在PHP中,钩子(Hooks)是一种机制,允许开发人员在特定的时机插入自定义代码,通过使用钩子,开发人员可以在应用程序的特定事件发生时执行自定义的功能或逻辑,文中有详细的代码讲解,需要的朋友可以参考下
    2023-11-11
  • PHP中include与require使用方法区别详解

    PHP中include与require使用方法区别详解

    这篇文章详细介绍了PHP中include与require使用方法的区别,有需要的朋友可以参考一下
    2013-10-10
  • PHP代码加密和扩展解密实战

    PHP代码加密和扩展解密实战

    这篇文章主要介绍了PHP代码加密和扩展解密实战,对加密解密感兴趣的同学,可以参考下
    2021-04-04
  • 扩展你的 PHP 之入门篇

    扩展你的 PHP 之入门篇

    扩展你的 PHP 之入门篇...
    2006-12-12
  • PHP 常见郁闷问题答解

    PHP 常见郁闷问题答解

    [绿色]PHP 常见郁闷问题答解...
    2006-11-11

最新评论