$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. [考试反思]0821NOIP模拟测试28:沉默

    这次不能把我前面的分数段都列出来了,因为实在太多了. 这次也不能把我后面的分数段列出来了,因为我后面没有了. yxm,mikufun,Pairs170100分第10.50分第29. 我:爆零,倒数第一 ...

  2. csp模拟69

    考试一眼看出$T3$原题,但是没做过,心态爆炸. 然后去看$T1$,迷之认为它是矩阵快速幂?推了一个小时,发现在转移过程中方案数并不均匀分布,然后就挂了. 决定先去看T3,只会$O(n\sqrt{n} ...

  3. NOIP模拟 38

    liu_runda的题! 错过辽QAQ T1虽然没用题解的损益法,但是用高精%还能过.. 没想到敲完就过编译了,还以为要调一天呢 高精度的阴影没了- T2的思路很巧妙 首先一个区间最多有一种颜色占一半 ...

  4. 使用Typescript重构axios(九)——异常处理:基础版

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  5. P2115 [USACO14MAR]破坏(二分答案)

    给定一串数,问删除中间一段,剩下的平均数最小是多少: 不容易想到这是个二分. $solution:$ 来手玩一点式子: 首先很容易想到一个前缀和$sum_i $表示i到1的前缀和,这样就能很容易地O( ...

  6. Mybatis中多表关联时,怎么利用association优雅写resultMap来映射vo

    前言 有好一阵没碰mybatis了,这次的项目基于性能考虑,选了mybatis,写着写着,发现有下面的需求,比如两表联查,取其中各一部分字段,怎么更方便地用vo来接,这里犯了难: 我想的是,因为这个s ...

  7. 关闭redis持久化功能

    关闭redis持久化功能持久化会报如下信息 会影响硬盘写入性能 所以没什么用 就关掉吧 修改redis配置文件,redis.conf 第115行左右. 1.注释掉原来的持久化规则 <pre> ...

  8. Java设计模式之单利模式(Singleton)

    单利模式的应用场景: 单利模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例.并提供一个全局反访问点.单利模式是创建型模式.单利模式在生活中应用也很广泛,比如公司C ...

  9. nyoj 115-城市平乱 (BFS)

    115-城市平乱 内存限制:64MB 时间限制:1000ms 特判: No 通过数:5 提交数:8 难度:4 题目描述: 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维 ...

  10. 【SpringBoot | Swagger】SpringBoot整合Swagger

    SpringBoot整合Swagger 1. 什么是Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.简单说就是项目跑起来了, ...