php 对于一维数组的排序有 俩种情况,一种是按值排序,一种是按键值, 其中不同的排序函数有不同的用法,有的会失去索引关系,有的会保持索引关系。但是都比较方便。

对于多维数组来说,就需要自己定义排序函数。其实就感觉像c,c++ 那样。对结构体之类的进行排序。

对于数组排序来说,分俩种情况,一种是对数字排序,一种是对字符串进行排序。

对数字进行排序

function numSort($x,$y){

return $x['a'] < $y['a'];

}

$array = array(

'a'=>array('a'=>1,'b'=>'a'),

'b'=>array('a'=>2,'b'=>'b'),

'c'=>array('a'=>3,'b'=>'c'),

'd'=>array('a'=>4,'b'=>'d')

);

var_dump($array);

echo "


";

usort($array,'numSort');

var_dump($array);

?>

array

'a' =>

array

'a' => int 1

'b' => string 'a' (length=1)

'b' =>

array

'a' => int 2

'b' => string 'b' (length=1)

'c' =>

array

'a' => int 3

'b' => string 'c' (length=1)

'd' =>

array

'a' => int 4

'b' => string 'd' (length=1)

array

0 =>

array

'a' => int 4

'b' => string 'd' (length=1)

1 =>

array

'a' => int 3

'b' => string 'c' (length=1)

2 =>

array

'a' => int 2

'b' => string 'b' (length=1)

3 =>

array

'a' => int 1

'b' => string 'a' (length=1)

发现索引关系没了。如果要保持索引关系,那么使用uasort就可以了。

对于字符串的排序,就需要考虑的字典序。

<?php 

function keySort($x,$y){

return strcasecmp($y['b'], $x['b']);//不区分大小写

}

$array = array(

'a'=>array('a'=>1,'b'=>'a'),

'b'=>array('a'=>2,'b'=>'b'),

'c'=>array('a'=>3,'b'=>'c'),

'd'=>array('a'=>4,'b'=>'d')

);

var_dump($array);

echo "


";

usort($array,'keySort');

var_dump($array);

?>

'a' =>

array

'a' => int 1

'b' => string 'a' (length=1)

'b' =>

array

'a' => int 2

'b' => string 'b' (length=1)

'c' =>

array

'a' => int 3

'b' => string 'c' (length=1)

'd' =>

array

'a' => int 4

'b' => string 'd' (length=1)

array

0 =>

array

'a' => int 4

'b' => string 'd' (length=1)

1 =>

array

'a' => int 3

'b' => string 'c' (length=1)

2 =>

array

'a' => int 2

'b' => string 'b' (length=1)

3 =>

array

'a' => int 1

'b' => string 'a' (length=1)

对键值排序

<?php 

function keySort($x,$y){

return strcasecmp($y, $x);//不区分大小写

}

$array = array(

'a'=>array('a'=>4,'b'=>'d'),

'b'=>array('a'=>3,'b'=>'c'),

'c'=>array('a'=>2,'b'=>'b'),

'd'=>array('a'=>1,'b'=>'a')

);

var_dump($array);

echo "


";

uksort($array,'keySort');

var_dump($array);

?>

array

'a' =>

array

'a' => int 4

'b' => string 'd' (length=1)

'b' =>

array

'a' => int 3

'b' => string 'c' (length=1)

'c' =>

array

'a' => int 2

'b' => string 'b' (length=1)

'd' =>

array

'a' => int 1

'b' => string 'a' (length=1)

array

'd' =>

array

'a' => int 1

'b' => string 'a' (length=1)

'c' =>

array

'a' => int 2

'b' => string 'b' (length=1)

'b' =>

array

'a' => int 3

'b' => string 'c' (length=1)

'a' =>

array

'a' => int 4

'b' => string 'd' (length=1)

php 数组还是很强大。感觉学习不少

php 接口数组排序,php 数组排序相关推荐

  1. php排序数组排序_PHP 数组排序

    写两个冒泡排序: //升序 $myArray=array(10,11,9,12,8); for ($i=0;$i for ($j=0;$j if($myArray[$j]>$myArray[$j ...

  2. JavaScript 数组排序,随机排序,查找最大(最小)值,对象属性进行排序

    JavaScript 数组排序 1.数组排序- - -sort() 根据首字符进行排序,a-z.注意:会改变原数组 var array=["c","d",&qu ...

  3. Js数组排序以及数组转换字符串

    数组排序 <script>//数组排序//1.翻转数组 reverse()var arr = ['A','B','C'];arr.reverse();alert(arr);//2.数组排序 ...

  4. JAVA——自定义排序(实现Comparable接口)

    Arrays.sort()方法可对任何实现compareble接口的对象数组排序. 源代码 EmployeeSortTest.java import java.util.*;/*** This pro ...

  5. Java学习总结:37(比较器)

    比较器 Arrays类 No. 方法 类型 描述 1 public static boolean equals(int [] a,int [] a2) 普通 判断两个数组是否相等,此方法被重载多次,可 ...

  6. 支付开发填坑记之支付宝

    支付宝在所有支付方式中最好开发的了,因为文档比较清晰,而且开发起来也比较简单.因此,支付宝的坑是相对较少的. 原文地址 APP支付 APP支付步骤为: 获取支付宝的配置信息. 生成商家订单信息. 根据 ...

  7. java arrays方法_Java工具类Arrays中不得不知的常用方法

    原标题:Java工具类Arrays中不得不知的常用方法 Arrays 数组操作集数组转List ---asList 这个被"普遍"称为数组转List的方法,可能是Arrays内大家 ...

  8. 第六章 ---- 面向对象(三)

    文章目录 关键字 static main方法说明 设计模式 单例设计模式 面试题 写一个Singleton实例 类的成员 代码块(四) 关键字final 关键字abstract 抽象类的匿名子类 多态 ...

  9. Java_08 快速入门 Java常用类库

    目录 第一章:Java常用类库 1.1  StringBuffer类 范例1-1:观察StringBuffer基本使用. 范例1-2:取得CharSequence接口实例化对象. 范例1-3:Stri ...

最新文章

  1. CentOS7 通过代理上网
  2. 启动jar包 服务方式
  3. linux 其他常用命令
  4. 编译bluez-utils-3.36,死活找不到bluez D-bus的解决方法
  5. UESTC 1851 Kings on a Chessboard
  6. Docker常用操作命令(一)
  7. flink下载以及兼容性问题
  8. 福州大学计算机学院董晨老师,福州大学代表队高分斩获第三届福建省高校网络空间安全大赛冠军...
  9. 实现两(三)列等高布局的方法
  10. Elasticsearch 并发修改乐观锁
  11. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
  12. [我的常识]动物庄园里说鼻环,到底为啥要穿鼻环呢
  13. java 文件读取大全
  14. 计算机应用数学自考,计算机应用数学-补充题16年自考复习资料
  15. 3串口多串口双串口以及2串口转WiFi多跳路由通讯实现一
  16. vs2005安装和部署项目
  17. Tree Booster 的参数
  18. 数学建模:多项式拟合并判断可决系数R²
  19. ubuntu Aria2 AriaNg安装
  20. 使用java实现路由协议_如果使用OSPF作为路由协议,那么( )【选两项】

热门文章

  1. 树莓派400键盘计算机发布!全新的电路板布局,更快,更酷!
  2. 十 ubus安装编译
  3. andy the android ppt,新概念同步测试1.ppt
  4. MATLAB教程目录
  5. PSO求解梯级水库优化调度
  6. 【Linux】Face Recognition的封装
  7. URI是什么意思?URI和URL有什么区别?
  8. Redux 莞式教程 之 简明篇
  9. java获取系统语言(区分简体中文和繁体中文)
  10. .Net开源 Shuttle(飞梭)服务总线(ESB)入门