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

2015-01-24信息快讯网

本篇文章是对用php array_multisort函数对数据库结果进行复杂排序进行了详细的分析介绍,需要的朋友参考下

首先讲一下需求:数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序。
下面将一下array_multisort函数
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。

关联(string)键名保持不变,但数字键名会被重新索引。

排序顺序标志:
SORT_ASC C 按照上升顺序排序
SORT_DESC C 按照下降顺序排序

排序类型标志:
SORT_REGULAR C 将项目按照通常方法比较
SORT_NUMERIC C 将项目按照数值比较
SORT_STRING C 将项目按照字符串比较

每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 C 在此之前为默认值 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安装xdebug/php安装pear/phpunit详解步骤(图)
php对二维数组进行排序的简单实例
sae使用smarty模板的方法
PHP函数microtime()用法与说明
wordpress自定义url参数实现路由功能的代码示例
php对二维数组按指定键值key排序示例代码
php导出word格式数据的代码实例
限制ckeditor上传图片文件大小的方法
php ckeditor上传图片文件名乱码解决方法
PHP PDOStatement:bindParam插入数据错误问题分析
PHP反射类ReflectionClass和ReflectionObject的使用方法
php堆排序(heapsort)练习
PHP中ob_start函数的使用说明
php生成图形(Libchart)实例
php二维数组排序详解
PHP时间戳 strtotime()使用方法和技巧
PHP 使用pcntl和libevent 实现Timer功能
zend optimizer在wamp的基础上安装图文教程
php 地区分类排序算法
利用php递归实现无限分类 格式化数组的详解
php引用返回与取消引用的详解
coreseek 搜索英文的问题详解
深入for,while,foreach遍历时间比较的详解
探讨fckeditor在Php中的配置详解
探讨PHP中this,self,parent的区别详解
解析php中call_user_func_array的作用
深入eAccelerator与memcached的区别详解
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
PHP 常用数组内部函数(Array Functions)介绍
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
基于PHP array数组的教程详解
php set_time_limit()函数的使用详解
PHP register_shutdown_function函数的深入解析
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
用php实现选择排序的解决方法
php二维数组排序与默认自然排序的方法介绍
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
关于二级目录拖拽排序的实现(源码示例下载)
如何用PHP实现插入排序?
©2014-2024 dbsqp.com