首页 > 编程语言 >PHP二维数组排序算法函数

PHP二维数组排序算法函数

时间:2024-11-20 12:14:42浏览次数:3  
标签:salary 排序 age 二维 数组 array PHP data

以使用PHP内置的array_multisort()函数来对二维数组进行排序。array_multisort()函数可以对多个数组或多维数组的一个或多个列进行排序。下面是一个示例函数,该函数可以对二维数组按指定列进行排序:

<?php
function sort2DArrayByColumn(&$array, $columnKey, $sortOrder = SORT_ASC) {
    // 提取出需要排序的列
    $columnValues = array_column($array, $columnKey);

    // 使用 array_multisort 对二维数组进行排序
    array_multisort($columnValues, $sortOrder, $array);
}

// 示例用法
$data = [
    ['name' => 'John', 'age' => 30, 'salary' => 5000],
    ['name' => 'Jane', 'age' => 25, 'salary' => 6000],
    ['name' => 'Doe', 'age' => 35, 'salary' => 4000],
];

echo "排序前:\n";
print_r($data);

// 按 'age' 列升序排序
sort2DArrayByColumn($data, 'age');

echo "\n按 'age' 列升序排序后:\n";
print_r($data);

// 按 'salary' 列降序排序
sort2DArrayByColumn($data, 'salary', SORT_DESC);

echo "\n按 'salary' 列降序排序后:\n";
print_r($data);
?>

代码解释:

  1. 函数定义
    • sort2DArrayByColumn(&$array, $columnKey, $sortOrder = SORT_ASC)
      • &$array:传引用传递二维数组,排序后原数组会被修改。
      • $columnKey:指定要排序的列名。
      • $sortOrder:排序顺序,默认为升序(SORT_ASC),可选降序(SORT_DESC)。
  2. 提取列值
    • array_column($array, $columnKey):提取出二维数组中指定列的所有值。
  3. 排序
    • array_multisort($columnValues, $sortOrder, $array):根据提取出的列值对二维数组进行排序。
  4. 示例用法
    • 创建一个二维数组$data
    • 打印排序前的数组。
    • 'age'列升序排序并打印结果。
    • 'salary'列降序排序并打印结果。

运行该代码后,你会看到数组按照指定的列和顺序进行了排序。

标签:salary,排序,age,二维,数组,array,PHP,data
From: https://blog.csdn.net/sheji888/article/details/143900380

相关文章

  • (2024最新毕设合集)基于SpringBoot的校园共享厨房信息系统-72647|可做计算机毕业设计JAV
    目 录摘要第一章 绪论1.1选题背景与意义1.2研究现状1.3论文结构与章节安排第二章系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用例分......
  • php购物商城php毕业设计在线购物商城电商网站电子产品网站手机购物商城电子产品购物商
    一、功能介绍php在线购物商城电商网站详细技术:HTML+CSS+JS+PHP+MYSQL系统分为用户和管理员两种身份用户功能如下:1.登陆注册2.查看商品详情、蛋糕资讯3.加入购物车、结算订单4.评价5.修改密码6.搜索蛋糕7.退出登录管理员功能如下:1.登录退出2.蛋糕管理(添加、修改和......
  • Flutter 扫描二维码
    在今天的移动开发中,二维码扫描已经成为了常见的功能之一。Flutter作为一款跨平台的开发框架,提供了丰富的插件和功能,使得开发者可以轻松实现二维码扫描以及图像识别功能。本文将介绍如何在Flutter中通过结合 scan 插件、permission_handler 插件以及 image_picker 插件,实现......
  • List集合按照由小到大排序或者由大到小排序
    @目录背景原代码由小到大排序由大到小排序背景原List<User>里面是无序的,比如从redis查找等情况,查出来的是无序的,现在想按照由小到大排序或者由大到小排序。原代码List<User>list=newArrayList<>();list.add(newUser(3,"c",newDate(1686402103000L),newDate(1688......
  • Public NOIP Round #6 D 排序 题解
    Description今天是YQH的生日,她得到了一个\(1\simn\)的排列作为礼物。YQH是一个有强迫症的女孩子,她希望把这个排列从小到大排序,具体的,她可以进行这样的操作:把\([1,n]\)分成若干个区间,假如是\(m\)段,依次为\([l_1,r_1],[l_2,r_2],\dots,[l_m,r_m]\),其中\(l_1=1,r_m=......
  • 淘宝商品爬虫:PHP实现关键字搜索
    在数字化时代,网络购物已成为我们生活的一部分。淘宝,作为中国最大的电商平台之一,拥有海量的商品信息。对于开发者来说,如何从这些信息中快速准确地获取所需商品,成为了一个值得探讨的问题。本文将介绍如何使用PHP编写一个简单的淘宝商品爬虫,通过关键字搜索来获取商品信息。环境准......
  • python+vue基于django/flask的连锁超市销售管理系统(超市库存与销售管理平台)java+nodej
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+vue基于django/flask的奖学金评定系统(奖学金申请与管理平台)java+nodejs+php-计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+vue基于django/flask的同城篮球赛事场地预约系统java+nodejs+PHP-计算机毕业设
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • fastadmin-PHP-导出少量数据PhpOffice以及百万级别数据csv压缩
    在进行数据导出的时候,少量的数据可以使用phpexcel,但大量的数据用phpexcel就很消耗资源了。在使用fastadmin做数据导出的时候,相关的代码请参考:https://blog.csdn.net/bingyu709/article/details/141949034我自己这边因为数据量会很大,所以代码层做了一个数量的划分,少于50000走phpe......