eg1:只根据一个规则进行排序,比如我下面的数组是一组满减折扣的信息,我要按照满减的金额从小到大排序

代码:

<?php

$arr =[
["amount"=> 60,"discount"=> 35],
["amount"=> 20,"discount"=> 10],
["amount"=> 5,"discount"=> 3]
]; $column = array_column($arr,'amount'); array_multisort($column,SORT_ASC,$arr);
print_r($column);
print_r($arr); ?>

输出:

Array
(
[0] => 5
[1] => 20
[2] => 60
)
Array
(
[0] => Array
(
[amount] => 5
[discount] => 3
) [1] => Array
(
[amount] => 20
[discount] => 10
) [2] => Array
(
[amount] => 60
[discount] => 35
) )

eg2:有时候需要对一个二维数组进行排序,自定义对应的排序规则,比如对一个班级里面的同学,先按身高降序排序,身高相同的,再按体重降序排序。。。

代码:

<?php
$array = [
["id" => "1", "name" => "a", "age" => "19",],
["id" => "2", "name" => "b", "age" => "39",],
["id" => "3", "name" => "c", "age" => "9",],
["id" => "4", "name" => "d", "age" => "1",],
["id" => "5", "name" => "e", "age" => "88",],
["id" => "6", "name" => "f", "age" => "65",],
["id" => "7", "name" => "g", "age" => "19",],
]; array_multisort(array_column($array,"age"),SORT_DESC,array_column($array,"id"),SORT_DESC,$array);
print_r($array);
?>

上面这个二维数组,先按年龄(age)降序排序,如果年龄(age)相同的话,再按 id 降序排序

输出:

Array
(
[0] => Array
(
[id] => 5
[name] => e
[age] => 88
) [1] => Array
(
[id] => 6
[name] => f
[age] => 65
) [2] => Array
(
[id] => 2
[name] => b
[age] => 39
) [3] => Array
(
[id] => 7
[name] => g
[age] => 19
) [4] => Array
(
[id] => 1
[name] => a
[age] => 19
) [5] => Array
(
[id] => 3
[name] => c
[age] => 9
) [6] => Array
(
[id] => 4
[name] => d
[age] => 1
) )

如果遇到下面的PHP警告,就是你拿来比较的标志的数组大小跟待排序的数组大小不一致,可以把 array_multisort 里面的数组都打印出来看下大小是否一致

PS:PHP Warning : array_multisort(): Array sizes are inconsistent

php 二维数组自定义排序的更多相关文章

  1. php二维数组自定义排序

    $arr = array( '0' => array('id' =>1,'price'=>200), '1' => array('id' =>2,'price'=> ...

  2. 代码分享:php对二维数组进行排序

    发布:net/PHP编程  编辑:thebaby   2013-06-28 13:12:54  [大 中 小] 转自:http://www.jbxue.com/article/9991.html本文介 ...

  3. Java 二维数组,排序、切换顺序,查表法二进制十进制,这班查找、排序(冒泡、选择)、遍历,获取最大小值(4)

    Java 二维数组,排序.切换顺序,查表法二进制十进制,折半查找.排序(冒泡.选择).遍历,获取最大小值(4)

  4. php 二维数组的排序

    写这是之前一直二维数组排名困扰.自己写的好复杂. 正题: array_mutisort 官方帮助文档 <?php// 取得列的列表foreach ($data as $key => $ro ...

  5. Java数组排序基础算法,二维数组,排序时间计算,随机数产生

    import java.util.Arrays; //包含Arrays import java.util.Random; public class HelloWorld { public static ...

  6. 如何使用python来对二维数组进行排序

    1.复合排序 直接用numpy的lexsort就可以 import numpy as np data = np.array([[1,2,3,4,5], [1,2,3,6,7], [2,3,4,5,7] ...

  7. 二维数组sort排序

    和副本任务完全无关的奇怪感慨: 完全搞不懂我为什么会在搞图论的时候学这种奇怪东西,需要的时候不会,不需要的时候又莫名增加了奇怪的技能点. 之前的假期规划在十多天的放飞自我中彻底泡汤,简单的图论都一点不 ...

  8. 首先定义一个5X8的二维数组,然后使用随机数填充满。借助Arrays的方法对二维数组进行排序。

    package day02; import java.util.Arrays; import java.util.Random; public class Test01 { public static ...

  9. 用PHP自带函数对二维数组进行排序

    经常会面临这样的需求,虽然有时候我们可以在数据库查询的时候,直接对数据进行排序,但还是无法满足日益复杂的业务需求. 这里边会用到两个函数 一个是array_column()函数,这个函数接受三个参数. ...

随机推荐

  1. ROS Learning-031 (提高篇-009 A Mobile Base-07) 控制移动平台 --- (操作)人机交互

    ROS 提高篇 之 A Mobile Base-07 - 控制移动平台 - (操作)人机交互 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14 ...

  2. c# ??和运算符先后的问题

    ; ; - not1??; Console.WriteLine(a); 输出结果为:10 问题因该是??运算符没有-的优先级高,实际这个 操作等于: ; ; - not1)??); 解决这个问题的办法 ...

  3. c++ 切勿重新定义继承来的带缺省参数的函数

    切勿重新定义继承来的带缺省参数的函数.我们知道,继承来的函数是virtual 的,至于原因在上一节中已经说明了,即“切勿重新定义父类non-virtual函数”.所以确切的描述应该是“切勿重新定义继承 ...

  4. Linux-shell获取天气

    用Linux中的shell获取天气,本来觉的比较难,原来,真简单,个位数的代码就搞定. 获取对应城市天气 所有天气信息都从中国天气网获取.每一个城市多会对应一个id(比如,北京为101010100,因 ...

  5. Joda Time 使用

    Joda Time 使用 对于系统的一些时间操作很是不方便,为了方便转化,有时候用date,有时候用timestmp,有时候用calendar,忍不住想更改了. 但是任务巨大,先把笔记收藏了,后面有机 ...

  6. MSCN(Mean Subtracted Contrast Normalized)系数的直方图

    MSCN系数是无参考的空间域图像质量评估算法BRISQUE(No-Reference Image Quality Assessment in the Spatial Domain)中提出的,MSCN系 ...

  7. redis系列:集群

    1 简介 Redis 集群是Redis 的一个分布式实现,它是一个网状结构,每个节点都通过 TCP 连接跟其他每个节点连接.现在来看看Redis集群实现了哪些目标? 在1000个节点的时候仍能表现得很 ...

  8. Java NIO学习笔记

    Java NIO学习笔记 一 基本概念 IO 是主存和外部设备 ( 硬盘.终端和网络等 ) 拷贝数据的过程. IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成. 所有语言运行时系统提供执 ...

  9. [OpenGL]点阵显示生日快乐小程序

    刚工作没多久的时候,业余学习了OGL的知识(这是写不好的借口吧), 在某个异性生日的时候写了这个程序. 编译平台: MinGW GCC gcc -o happOK happyOK.c -lglut32 ...

  10. (转)Haar-like矩形遍历检测窗口演示Matlab源代码

    from:http://blog.sina.com.cn/s/blog_736aa0540101kzqb.html clc; clear; close all; % Haar-like特征矩形计算 b ...