php数组排序usort、uksort与sort函数用法


Posted in PHP onNovember 17, 2014

本文实例讲述了php数组排序usort、uksort与sort函数用法。分享给大家供大家参考。具体用法分析如下:

对数组排序:usort() 函数使用用户自定义的函数对数组排序,实例代码如下:

function cmp($a, $b)        //用户自定义回调函数 

{ 

  if($a==$b)         //如果两个参数相等 

  { 

    return 0;         //返回0 

  } 

  return($a>$b)?-1:1;       //如果第1个参数大于第2个返回1,否则-1 

} 

$a=array(3,2,5,6,1);        //定义一个数组 

usort ($a,"cmp");        //使用自定义函数对数组排序 

foreach($a as $key=>$value)      //循环输出排序后的键值对 

{ 

  echo "$key:$valuen"; 

}

注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义,到 php 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序,但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,因为对此没有一个有效的解决方案.

对数组键名排序 uksort(array,sorttype),实例代码如下:

function cmp($a, $b)        //用户自定义回调函数 

{ 

  if($a==$b)         //如果两个参数相等 

  { 

    return 0;         //返回0 

  } 

  return($a>$b)?-1:1;       //如果第1个参数大于第2个返回1,否则-1 

} 

$a=array(4=>"four",3 =>"three",20 =>"twenty",10=>"ten"); //定义一个数组 

uksort ($a,"cmp");        //使用自定义函数对数组键名排序 

foreach($a as $key=>$value)      //循环输出排序后的键值对 

{

  echo "$key:$valuen"; 

}

uksort() 函数使用用户自定义的比较函数按照键名对数组排序,并保持索引关系,如果成功则返回 true,否则返回 false.

如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数,自定义函数应接受两个参数,该参数将被数组中的一对键名填充,比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数.

sort() 函数按升序对给定数组的值排序.

注释:本函数为数组中的单元赋予新的键名,原有的键名将被删除,如果成功则返回 true,否则返回 false,实例代码如下:

$fruits=array("lemon","orange","banana","apple");    //定义一个数组 

sort($fruits);           //对数组进行排序 

foreach($fruits as $key=>$val)        //循环输出数组排序后的键值对 

{ 

  echo "$key=$valn";         //输出键值对 

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
谈谈新手如何学习PHP
Dec 23 PHP
实用函数8
Nov 08 PHP
php 无限极分类
Mar 27 PHP
php数组对百万数据进行排除重复数据的实现代码
Jun 08 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
php数组函数序列之array_unique() - 去除数组中重复的元素值
Oct 29 PHP
深入array multisort排序原理的详解
Jun 18 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 PHP
php中current、next与reset函数用法实例
Nov 17 #PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 #PHP
php检测数组长度函数sizeof与count用法
Nov 17 #PHP
php中filter_input函数用法分析
Nov 15 #PHP
getimagesize获取图片尺寸实例
Nov 15 #PHP
php中rename函数用法分析
Nov 15 #PHP
php格式输出文件var_export函数实例
Nov 15 #PHP
You might like
php设计模式 Proxy (代理模式)
2011/06/26 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
php查询whois信息的方法
2015/06/08 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
Python绘制股票移动均线的实例
2019/08/24 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
pip install命令安装扩展库整理
2021/03/02 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
12月小学生校园广播稿
2014/02/04 职场文书
董事长秘书工作职责
2014/06/10 职场文书
夫妻分居协议书范文
2014/11/26 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
《确定位置》教学反思
2016/02/18 职场文书
Python中X[:,0]和X[:,1]的用法
2021/05/10 Python