当前位置: 首页 > article >正文

PHP写一个二维数组排序算法函数可以调用PHP内置函数

PHP提供了多种内置函数来对二维数组进行排序,其中array_multisort()是一个非常强大的工具,它可以基于一个或多个列对多维数组进行排序。以下是一个使用array_multisort()的示例函数,该函数可以对二维数组进行排序:

<?php  
function sort2DArrayByColumn(&$array, $columnKey, $sortOrder = SORT_ASC) {  
    // 使用array_column提取指定列的值  
    $columnValues = array_column($array, $columnKey);  
      
    // 使用array_multisort对提取的列值和原数组进行排序  
    array_multisort($columnValues, $sortOrder, $array);  
}  
  
// 示例二维数组  
$people = [  
    ['name' => 'Alice', 'age' => 30],  
    ['name' => 'Bob', 'age' => 20],  
    ['name' => 'Charlie', 'age' => 25],  
];  
  
// 调用排序函数,按'age'列升序排序  
sort2DArrayByColumn($people, 'age');  
  
// 输出排序后的数组  
print_r($people);  
  
// 如果想要降序排序,可以将$sortOrder设置为SORT_DESC  
sort2DArrayByColumn($people, 'age', SORT_DESC);  
  
// 再次输出排序后的数组  
print_r($people);  
?>

在这个例子中,sort2DArrayByColumn()函数接受三个参数:

  1. $array:要排序的二维数组(通过引用传递,以便直接修改原数组)。
  2. $columnKey:要基于其值进行排序的列键名。
  3. $sortOrder:排序顺序,默认为SORT_ASC(升序)。如果设置为SORT_DESC,则进行降序排序。

函数内部使用array_column()函数从二维数组中提取出指定列的值,然后使用array_multisort()函数对这些值和原数组进行排序。

注意,由于array_multisort()会修改传入的数组,因此$array参数是通过引用传递的(在函数定义中使用&符号)。这意味着函数内部对$array的任何修改都会反映到原始数组上。


http://www.kler.cn/news/367202.html

相关文章:

  • 通过js控制css变量
  • 网络原理之 TCP解释超详细!!!
  • Redis 事务 总结
  • 用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(一)
  • 【C】用c写贪吃蛇
  • Vue学习笔记(四)
  • 【Linux | 网络I/O模型】五种网络I/O模型详解
  • Docker下载途径
  • 【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)
  • 正则表达式使用举例一(Python下)
  • 220V降12V1A恒流点灯WT5112
  • 论文笔记(五十一)Challenges for Monocular 6-D Object Pose Estimation in Robotics
  • mysql8数据库备份
  • 合合信息:生成式Al时代的内容安全与系统构建加速,开启智能文档的全新潜能
  • 算法设计与分析——动态规划
  • FPGA学习(7)-线性序列机原理与应用,不同类型的LED控制开关
  • 《复旦学报(自然科学版)》
  • DataSophon集成ApacheImpala的过程
  • 深度学习:神经元(Neuron):人工神经网络中的基本单元
  • Java | Leetcode Java题解之第514题自由之路
  • Java 集合框架是什么?集合框架的优点有哪些?
  • 【nGrinder】性能压测平台记录文档(2)
  • web3对象如何连接以太网络节点
  • python之数据结构与算法(数据结构篇)-- 集合
  • Redis 事务 总结
  • Docker 安装使用