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 SQL防注入代码集合
Apr 25 PHP
PHP XML操作类DOMDocument
Dec 16 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 PHP
php将xml转化对象的实例详解
Nov 17 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
oracle资料库函式库
2006/10/09 PHP
动易数据转成dedecms的php程序
2007/04/07 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
vue项目中js-cookie的使用存储token操作
2020/11/13 Javascript
[01:12:08]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.24
2019/09/10 DOTA
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
基于Python的关键字监控及告警
2017/07/06 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
python 二维数组90度旋转的方法
2019/01/28 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
opencv3/python 鼠标响应操作详解
2019/12/11 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
python语言中有算法吗
2020/06/16 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
python使用smtplib模块发送邮件
2020/12/17 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
玩具反斗城西班牙网上商城:ToysRUs西班牙
2017/01/19 全球购物
小学德育工作经验交流材料
2014/05/22 职场文书
社会学专业求职信
2014/07/17 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
Ruby处理CSV数据方法详解
2022/04/18 Ruby