前言:这三个函数都是php提供给开发者自定义的数组排序函数。

1.usort:按值排序,索引重新定义

a.基础案例

 //自定义比较的函数
function mysort($a,$b){
if($a == $b) return 0;
return $a>$b?1:-1; //表示从小到大排列,如果想从大到小排列,则1和-1对调一下即可
}
$a = array(2,3,1,6,4);
usort($a,'mysort');
print_r($a);
//返回:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 6 )

b.高级案例

 //根据数组中某个元素的值大小排序[二维数组]
function mysort($a,$b){
if($a['create_time']==$b['create_time']) return 0;
return $a['create_time']>$b['create_time']?1:-1;
}
$a = array(
array('id'=>2,'create_time'=>12234234),
array('id'=>1,'create_time'=>12234221),
array('id'=>3,'create_time'=>12234222),
);
usort($a,'mysort');
echo '<pre>';
print_r($a);

返回结果:

 Array
(
[0] => Array
(
[id] => 1
[create_time] => 12234221
) [1] => Array
(
[id] => 3
[create_time] => 12234222
) [2] => Array
(
[id] => 2
[create_time] => 12234234
) )

2.uasort:按值排序,但会保持原来索引

3.uksort:按键排序

浅谈usort、uasort、uksort的更多相关文章

  1. 016——数组(十六)usort uasort uksort

    <?php /*数组 usort uasort uksort */ //usort()通过自定义函数对数组进行排序,原数组索引不保留 /*$arr = array(5, 3, 7, 6, 4, ...

  2. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  3. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  4. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  5. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

  6. 浅谈WebService的版本兼容性设计

    在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所 ...

  7. 浅谈angular2+ionic2

    浅谈angular2+ionic2   前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2 ...

  8. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  9. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

随机推荐

  1. netty handlers模式

    netty的handler模式真的挺方便的,可以像插件一样随意的插入自己新增的功能而不用队系统进行大的变动. 下面我们来看一下这个模式是如何实现和运行的. 待续...

  2. [Javascript] Intercept property access with Javascript Proxy

    A Javascript Proxy object is a very interesting es6 feature, that allows you to determine behaviors ...

  3. mysqli 预处理语句

    预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. <?php // 设置编码格式 header('content-type:text/html;charset=utf-8'); / ...

  4. Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知(转)

    信号  ( signal ) 机制是 UNIX 系统中最为古老的进程间通信机制,很多条件可以产生一个信号. 信号的产生: 1,当用户按下某些按键时,产生信号. 2,硬件异常产生信号:除数为 0 ,无效 ...

  5. Activity设置切换动画时黑屏问题的解决

    //当这么设置的时候.打开Acticity的时候会黑屏一下 overridePendingTransition(R.anim.activity_open,0); //改成例如以下代码 完美解决这个问题 ...

  6. 【Excle】文本日期转化为日期格式

    现存在一列文本格式的日期 需要将该列转化为日期格式 方法一:使用分列 数据→分列,第三步选择[日期] 方法二:使用text函数 公式得到的结果为: 但是这样转化后的是文本型日期,需要转化为日期型得先转 ...

  7. 【Java】Java_09 类型转换

    1.自动类型转换 自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型.在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失. 特例: 可以将整型常量直接赋 ...

  8. MongoDB笔记(二):MongoDB下Shell的基本操作

    一.mongoDB与关系型数据库对比 对比项              mongoDB             关系型数据库(oracle.mysql) 表 集合List 二维表table 表的一行数 ...

  9. 利用pandas进行数据分析之三:DataFrame与Series基本功能

    未经同意请勿转载http://www.cnblogs.com/smallcrystal/ 前文已经详细介绍DataFrame与Series两种数据结构,下面介绍DataFrame与Series的数据基 ...

  10. centos7下安装openvpn,访问内网服务器 (二) windows访问

    一.简介 在上一章中已经安装好了openvpn,并且已经启动成功,现在就可以通过openvpn的客户端进行连接访问内网服务器了. 二.安装openvpn客户端 下载地址: https://www.te ...