php 接口数组排序,php 数组排序
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 数组排序相关推荐
- php排序数组排序_PHP 数组排序
写两个冒泡排序: //升序 $myArray=array(10,11,9,12,8); for ($i=0;$i for ($j=0;$j if($myArray[$j]>$myArray[$j ...
- JavaScript 数组排序,随机排序,查找最大(最小)值,对象属性进行排序
JavaScript 数组排序 1.数组排序- - -sort() 根据首字符进行排序,a-z.注意:会改变原数组 var array=["c","d",&qu ...
- Js数组排序以及数组转换字符串
数组排序 <script>//数组排序//1.翻转数组 reverse()var arr = ['A','B','C'];arr.reverse();alert(arr);//2.数组排序 ...
- JAVA——自定义排序(实现Comparable接口)
Arrays.sort()方法可对任何实现compareble接口的对象数组排序. 源代码 EmployeeSortTest.java import java.util.*;/*** This pro ...
- Java学习总结:37(比较器)
比较器 Arrays类 No. 方法 类型 描述 1 public static boolean equals(int [] a,int [] a2) 普通 判断两个数组是否相等,此方法被重载多次,可 ...
- 支付开发填坑记之支付宝
支付宝在所有支付方式中最好开发的了,因为文档比较清晰,而且开发起来也比较简单.因此,支付宝的坑是相对较少的. 原文地址 APP支付 APP支付步骤为: 获取支付宝的配置信息. 生成商家订单信息. 根据 ...
- java arrays方法_Java工具类Arrays中不得不知的常用方法
原标题:Java工具类Arrays中不得不知的常用方法 Arrays 数组操作集数组转List ---asList 这个被"普遍"称为数组转List的方法,可能是Arrays内大家 ...
- 第六章 ---- 面向对象(三)
文章目录 关键字 static main方法说明 设计模式 单例设计模式 面试题 写一个Singleton实例 类的成员 代码块(四) 关键字final 关键字abstract 抽象类的匿名子类 多态 ...
- Java_08 快速入门 Java常用类库
目录 第一章:Java常用类库 1.1 StringBuffer类 范例1-1:观察StringBuffer基本使用. 范例1-2:取得CharSequence接口实例化对象. 范例1-3:Stri ...
最新文章
- CentOS7 通过代理上网
- 启动jar包 服务方式
- linux 其他常用命令
- 编译bluez-utils-3.36,死活找不到bluez D-bus的解决方法
- UESTC 1851 Kings on a Chessboard
- Docker常用操作命令(一)
- flink下载以及兼容性问题
- 福州大学计算机学院董晨老师,福州大学代表队高分斩获第三届福建省高校网络空间安全大赛冠军...
- 实现两(三)列等高布局的方法
- Elasticsearch 并发修改乐观锁
- CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
- [我的常识]动物庄园里说鼻环,到底为啥要穿鼻环呢
- java 文件读取大全
- 计算机应用数学自考,计算机应用数学-补充题16年自考复习资料
- 3串口多串口双串口以及2串口转WiFi多跳路由通讯实现一
- vs2005安装和部署项目
- Tree Booster 的参数
- 数学建模:多项式拟合并判断可决系数R²
- ubuntu Aria2 AriaNg安装
- 使用java实现路由协议_如果使用OSPF作为路由协议,那么( )【选两项】