前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP 类 MySQL 多字段排序 - array_multisort

PHP 类 MySQL 多字段排序 - array_multisort

作者头像
lukachen
发布2023-10-22 15:51:54
1530
发布2023-10-22 15:51:54
举报
文章被收录于专栏:LukaChen BlogLukaChen Blog

场景: 需在 PHP 内存中,多字段排序,类比 MySQL 中的 order by column1 desc, column2 asc

题目: 数据表中存在学生表,有年纪、分数两个字段,从数据库取出数据后,请在 PHP 内存中按年纪倒叙,分数正序排列

解答: 用 array_multisort 实现

代码语言:javascript
复制
$arrayFetchFromMysql = [
    [
        'id' => 1,
        'age' => 16,
        'score' => 86,
    ],
    [
        'id' => 2,
        'age' => 18,
        'score' => 95,
    ],
    [
        'id' => 3,
        'age' => 25,
        'score' => 60,
    ]
];

array_multisort(
    array_column($arrayFetchFromMysql, 'age'), SORT_DESC, 
    array_column($arrayFetchFromMysql, 'score'), SORT_ASC, 
    $arrayFetchFromMysql
);

exit(json_encode($arrayFetchFromMysql));

打印结果

代码语言:javascript
复制
[
    {
        "id": 3,
        "age": 25,
        "score": 60
    },
    {
        "id": 2,
        "age": 18,
        "score": 95
    },
    {
        "id": 1,
        "age": 16,
        "score": 86
    }
]

解析

php.net 对 array_multisort 定义 https://www.php.net/manual/zh/function.array-multisort.php

该操作需配合 array_coumn 函数,以上题目是两个字段排序,对更多字段排序也可以复用以上套路。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景: 需在 PHP 内存中,多字段排序,类比 MySQL 中的 order by column1 desc, column2 asc
  • 题目: 数据表中存在学生表,有年纪、分数两个字段,从数据库取出数据后,请在 PHP 内存中按年纪倒叙,分数正序排列
  • 解答: 用 array_multisort 实现
  • 解析
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档