php 数组排序 array_multisort与uasort的区别


Posted in PHP onMarch 24, 2011

Example:(简练)
uasort($arr,create_function('$a, $b','return $a[\'line_num\']<$b[\'line_num\'];'));
*************函数定义和语法*************
array_multisort
(PHP4 >= 4.0b4)
array_multisort --- 排序复合或多样尺寸的数组
语法 : bool array_multisort (array ar1 [,mixed arg [,mixed ...[,array...]]])
说明 :
Array_multisort( )能用来立刻将数个数组或多样尺寸(multi-dimensional)数组排序。
输入的数组被看作是表格(table)的栏位,依照列(rows)将它排序,这类似于SQL ORDER BY clause的功能,第一个数组是首要(primary)排序的数组,此数组中的列(值)以下一个输入的数组对照相同的排序。
这个函数的引数结构是个独特(unusual)位元,但是是可变通的。第一个引数必定是个数组,随后的引数可以是个数组或是下个列表的排序旗标(flag)之一。
排序顺序旗标 :
SORT_ASC - 排序成上升的顺序
SORT_DESC - 排序成下降的顺序
排序型态旗标 :
SORT_REGULAR - 正常的比较项目
SORT_NUMERIC - 以数字比较项目
SORT_STRING - 看作是字符串来比较项目
不能使用二个相同型态的旗标指定在各各数组之后,排序的旗标指定在数组引数的后面,只对此数组起作用,其它的将重设为预设的SORT_ASC和SORT_REGULAR在数组引数之后。
成功则传回true,失败则传回false。
*************函数定义和语法*************
uasort()
函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。
如果成功则返回 TRUE,否则返回 FALSE。
该函数主要用于对那些单元顺序很重要的结合数组进行排序。
语法
uasort(array,sorttype)参数 描述
array 必需。规定要排序的数组。
function 必需。用户自定义的函数。
函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:
如果 a = b, 返回 0
如果 a < b, 返回 1
如果 a > b, 返回 -1
PHP uasort() 函数
定义和用法
uasort() 函数使用用户自定义的比较函数对数组排序,并保持索引关联(不为元素分配新的键)。
如果成功则返回 TRUE,否则返回 FALSE。
该函数主要用于对那些单元顺序很重要的结合数组进行排序。
语法
uasort(array,sorttype)参数 描述
array 必需。规定要排序的数组。
function 必需。用户自定义的函数。
函数必须设计为返回 -1, 0, 或 1,并应该接受两个供比较的参数,同时以类似下面这样的方式来工作:
如果 a = b, 返回 0
如果 a < b, 返回 1
如果 a > b, 返回 -1
例子

<?php 
function my_sort($a, $b) 
{ 
if ($a == $b) return 0; 
return ($a > $b) ? -1 : 1; 
} 
$people = array("Swanson" => "Joe", 
"Griffin" => "Peter", "Quagmire" => "Glenn", 
"swanson" => "joe", "griffin" => "peter", 
"quagmire" => "glenn"); 
uasort($people, "my_sort"); 
print_r ($people); 
?>

输出:
Array 
( 
[griffin] => peter 
[swanson] => joe 
[quagmire] => glenn 
[Griffin] => Peter 
[Swanson] => Joe 
[Quagmire] => Glenn 
)
PHP 相关文章推荐
php 获取本机外网/公网IP的代码
May 09 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
深入分析php之面向对象
May 15 PHP
php图像处理函数大全(推荐收藏)
Jul 11 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
thinkphp在模型中自动完成session赋值示例代码
Sep 09 PHP
php传值赋值和传地址赋值用法实例分析
Jun 20 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP实现的简单AES加密解密算法实例
May 29 PHP
如何判断微信付款码和支付宝付款码
Apr 01 PHP
一个基于PDO的数据库操作类
Mar 24 #PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 #PHP
常见的PHP五种设计模式小结
Mar 23 #PHP
PHP中MVC模式的模板引擎开发经验分享
Mar 23 #PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 #PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 #PHP
php中取得URL的根域名的代码
Mar 23 #PHP
You might like
thinkPHP中分页用法实例分析
2015/12/26 PHP
thinkphp分页实现效果
2016/10/13 PHP
实例分析PHP将字符串转换成数字的方法
2019/01/27 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
JS的数组的扩展实例代码
2008/07/09 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
Python实现读取json文件到excel表
2017/11/18 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
HTML5实现无刷新修改URL的方法
2019/11/14 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
开平碉楼导游词
2015/02/06 职场文书
唐山大地震观后感
2015/06/05 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL