当前位置:首页 > PHP > 正文内容

PHP二维数组排序,PHP多维数组排序, array_multisort()

高老师7年前 (2018-10-14)PHP2025

使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列:

//会员表数据
$list = [];
$list[] = ['mid' => 5, 'name' => 'zhang', 'age' => 14];
$list[] = ['mid' => 7, 'name' => 'li', 'age' => 22];
$list[] = ['mid' => 9, 'name' => 'wang', 'age' => 29];
$list[] = ['mid' => 1, 'name' => 'gao', 'age' => 23];

//先取出mid和age
foreach ($list as $key => $value) {
    $mids[$key] = $value['mid'];
    $ages[$key] = $value['age'];
}

//按照mid降序,age升序排列
array_multisort($mids,SORT_DESC,$ages,SORT_ASC,$list);

var_dump($list);

输出结果:

array(4) {
  [0]=>
  array(3) {
    ["mid"]=>
    int(9)
    ["name"]=>
    string(4) "wang"
    ["age"]=>
    int(29)
  }
  [1]=>
  array(3) {
    ["mid"]=>
    int(7)
    ["name"]=>
    string(2) "li"
    ["age"]=>
    int(22)
  }
  [2]=>
  array(3) {
    ["mid"]=>
    int(5)
    ["name"]=>
    string(5) "zhang"
    ["age"]=>
    int(14)
  }
  [3]=>
  array(3) {
    ["mid"]=>
    int(1)
    ["name"]=>
    string(3) "gao"
    ["age"]=>
    int(23)
  }
}

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/68.html

分享给朋友:

“PHP二维数组排序,PHP多维数组排序, array_multisort()” 的相关文章

php经纬度计算距离

php经纬度计算距离

/**  * 计算两点地理坐标之间的距离  * @param  Decimal $longitude1 起点经度  * @param  Decimal $lati...

php将html转为pdf,php将html页面导出pdf

php将html转为pdf,php将html页面导出pdf

首先下载wkhtmltox-0.12.4_linux-generic-amd64.tar.xz   (不要下载RPM包,依赖太多,需要x-server支持),并解压,执行测试运行正常tar wkhtmltox-0.12.4_linux-generic-amd64.tar.xzcd...

 php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

php 判断是否post,php判断是否post提交,php 判断是否为post,php 判断get 还是post

if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is  post '); } elseif ($_SERVER['...

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

PHP获取站点根目录,PHP获取应用根目录,cgi和cli都支持

重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/**  * 获取应用根目录  * @return string  */ public static function getRootP...

php多进程实现任务管理器,定时执行任务,支持守护

php多进程实现任务管理器,定时执行任务,支持守护

主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /**  * 订单任务  */ class Order {    &n...