$arr[0] = ['aa'=>123,'bb'=>'abc'];
$arr[1] = ['aa'=>456,'bb'=>'dfe'];
usort($arr,ss('aa'));
function ss($key){
return function ($a,$b) use ($key) {
return $a[$key] < $b[$key]; //通过改变大于、小于来正向反向排序
};
}
var_dump($arr); /*
* 结果
array (size=2)
0 =>
array (size=2)
'aa' => int 456
'bb' => string 'dfe' (length=3)
1 =>
array (size=2)
'aa' => int 123
'bb' => string 'abc' (length=3)
*/
<?php

$arr = array(
0 => array('id' => '2014347856', 'name' => '张甜', '科目' => '语文', 'tag' => '期中考试', '成绩' => '142'),
1 => array('id' => '2014347856', 'name' => '张甜', '科目' => '数学', 'tag' => '期中考试', '成绩' => '98'),
2 => array('id' => '2014347856', 'name' => '张甜', '科目' => '英语', 'tag' => '期中考试', '成绩' => '118'),
3 => array('id' => '2014347856', 'name' => '张甜', '科目' => '化学', 'tag' => '期中考试', '成绩' => '78'),
4 => array('id' => '2014347856', 'name' => '张甜', '科目' => '物理', 'tag' => '期中考试', '成绩' => '132'),
5 => array('id' => '2014347856', 'name' => '张甜', '科目' => '生物', 'tag' => '期中考试', '成绩' => '115'),
6 => array('id' => '2014347856', 'name' => '张甜', '科目' => '地理', 'tag' => '期中考试', '成绩' => '99'),
7 => array('id' => '2014347856', 'name' => '张甜', '科目' => '历史', 'tag' => '期中考试', '成绩' => '88'),
8 => array('id' => '2014347856', 'name' => '张甜', '科目' => '政治', 'tag' => '期中考试', '成绩' => '125'),
9 => array('id' => '2014347880', 'name' => '李鸣', '科目' => '语文', 'tag' => '期中考试', '成绩' => '79'),
10 => array('id' => '2014347880', 'name' => '李鸣', '科目' => '数学', 'tag' => '期中考试', '成绩' => '148'),
11 => array('id' => '2014347880', 'name' => '李鸣', '科目' => '英语', 'tag' => '期中考试', '成绩' => '142'),
);
/*自定义排序*/
function userSort($a, $b)
{
if ($a['name'] == $b['name']) {
/*排序科目*/
$subjectSort = array('语文', '数学', '英语', '历史', '政治', '地理', '物理', '化学', '生物');
foreach ($subjectSort as $index => $item) {
if ($a['科目'] == $item) {
$tmp1 = $index;
}
if ($b['科目'] == $item) {
$tmp2 = $index;
}
} return $tmp1 < $tmp2 ? -1 : 1;
} else {
/*排序name*/
$tmpArr = array($a['name'], $b['name']);
sort($tmpArr); return $a['name'] == $tmpArr[0] ? -1 : 1;
}
} usort($arr, 'userSort'); var_dump($arr);

PHP按二维数组中的某个值重新排序数组 usort的使用方法的更多相关文章

  1. extract_by_one 根据二维数组中某字段来提取数组信息,查看有无重复信息

    public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...

  2. Structure From Motion(二维运动图像中的三维重建)

    SfM(Structure from Motion)简介 Structure from motion (SfM) is a photogrammetric range imaging techniqu ...

  3. QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)

    原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1) 提要:很多公司为商业宣传之需,常将企业LOGO加入二维码中,但如果LOGO遮挡区域足够地大,二维码就变得无法识别.那么,有没有一 ...

  4. QRCode二维码生成方案及其在带LOGO型二维码中的应用(2)

    原文:QRCode二维码生成方案及其在带LOGO型二维码中的应用(2) 续前:QRCode二维码生成方案及其在带LOGO型二维码中的应用(1)  http://blog.csdn.net/johnsu ...

  5. Python算法之动态规划(Dynamic Programming)解析:二维矩阵中的醉汉(魔改版leetcode出界的路径数)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_168 现在很多互联网企业学聪明了,知道应聘者有目的性的刷Leetcode原题,用来应付算法题面试,所以开始对这些题进行" ...

  6. PHP检测数组中的每个值是否含有特殊字符

    本文出至:新太潮流网络博客 /** * [TestArray 检测数组是一维还是二维] * @E-mial wuliqiang_aa@163.com * @TIME 2017-04-07 * @WEB ...

  7. PHP如何根据数组中的键值进行排序

    主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 <?php $array = array( array(), ...

  8. PHP中获取数组中单列的值

    PHP中获取数组中单列的值如下: 利用PHP中的数组函数 array_column():返回数组中某个单列的值.(PHP 5.5+适用) 语法: array_column(array,column_k ...

  9. .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现

    在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制. 在Wind ...

随机推荐

  1. Java 干货之深入理解Java泛型

    一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类.如果要编写可以应用多中类型的代码,这种刻板的限制对代码得束缚会就会很大. ---<Thinking in Java> ...

  2. 《Effective Java》 读书笔记(一) 使用静态构造方法代替传统构造函数

    对象的创建与销毁 ITEM1 使用静态工厂方法代替构造函数 传统的新建一个对象的方法是通过构造函数: Foo foo =new Foo(); 一个类也可以提供一个静态方法产生一个对象: Boolean ...

  3. 【工利其器】Android Lint篇——为Android量身定做的静态代码审查工具

    前言 我们在进行代码优化的时候,往往是通过开发者的经验来判断哪些代码可能存在潜在问题,哪些资源的使用不合规范等.实际上Android SDK提供了一款功能非常强大的工具,来帮助开发者自动检测代码的质量 ...

  4. beacon帧字段结构最全总结(三)——VHT字段总结

    VHT Capabilities 802.11ac作为IEEE 无线技术的新标准,它借鉴了802.11n的各种优点并进一步优化,除了最明显的高吞吐特点外,不仅可以很好地兼容802.11a/n的设备,同 ...

  5. kubernetes 集群部署

    kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152 ...

  6. nginx 根据不同url转发请求对应tomcat容器

    根据前端请求的url,nginx转发到指定的tomcat容器 原理如图: 现在我们有2个tomcat,一个tomcat的端口为9001,另一个tomcat的端口为9002 1.找到nginx的配置文件 ...

  7. js 把数组中每个元素的某个字段取出

    方法一:map() let cities = [ {city:"北京",bOn:false}, {city:"上海",bOn:false}, {city:&qu ...

  8. 关于Prometheus监控的思考:多标签埋点及Mbean

    使用 grafana+prometheus+jmx 作为普通的监控手段,是比较有用的.我之前的文章介绍了相应的实现办法. 但是,按照之前的实现,我们更多的只能是监控 单值型的数据,如请求量,tps 等 ...

  9. MySql——创建数据表,查询数据,排序查询数据

    参考资料:<Mysql必知必会> 创建数据表 在学习前首先创建数据表和插入数据.如何安装mysql可以看看上个博客https://www.cnblogs.com/lbhym/p/11675 ...

  10. Python3.7.1学习(八) Python访问SQL Server数据库

    一.pip install pymssql即可安装pymssql库 二.Python连接SQL Server数据库     实例代码如下: # -*- coding:utf-8 -*-"&q ...