
php 数组排序(其中的一个值进行排序)(array_multisort实现多维数组按多个值排序问题)
发布日期:2021-05-04 09:22:58
浏览次数:22
分类:精选文章
本文共 2043 字,大约阅读时间需要 6 分钟。
PHP 数组排序详解
PHP 提供了多种高效的数组排序函数,能够满足不同的排序需求。本文将详细介绍 PHP 数组排序的方法及实际应用案例。
方法一:使用 sort 函数
sort() 是 PHP 内置的排序函数,用于对数组单元从低到高进行排序。该函数会重新排列数组中的单元,并为其赋予新的键名。
例子
$arr = array("b", "a", "c");sort($arr);print_r($arr);
注意事项
- sort() 函数会改变排序后的数组单元的键名,默认为 0,1,2,...。
- sort() 函数返回 TRUE 表示排序成功,返回 FALSE 表示失败。
方法二:使用 array_multisort 函数
array_multisort() 可用于对多维数组进行排序,支持根据特定字段对数组元素进行排序。
1. 单字段排序
以下是基于单字段的排序示例:
$cmf_settings = array( array("url" => "img/20191015/5da586020fa6b.jpg", "alt" => "lunbo2", "href" => "https://www.baidu.com/", "sort" => "7"), array("url" => "img/20191018/5da9783499dec.jpg", "alt" => "X1300", "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300-180.html", "sort" => "3"), array("url" => "img/20191018/5da987c81f420.jpg", "alt" => "S300", "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/s300-170.html", "sort" => "4"));$cmf_arr = array_column($cmf_settings, 'sort');array_multisort($cmf_arr, SORT_ASC, $cmf_settings);
2. 多字段排序
以下是基于多个字段的排序示例:
$arr = array( '0' => array('id' => 3, 'age' => 27), '1' => array('id' => 5, 'age' => 50), '2' => array('id' => 4, 'age' => 44), '3' => array('id' => 3, 'age' => 78));array_multisort($id = array(), SORT_ASC, $age = array(), SORT_DESC, $arr);
3. 动态字段排序
为了支持动态字段数量,以下是使用 func_get_args() 的实现方法:
function sortArrByManyField() { $args = func_get_args(); if (empty($args)) { return null; } $arr = array_shift($args); if (!is_array($arr)) { throw new Exception("第一个参数不为数组"); } foreach ($args as $key => $field) { if (is_string($field)) { $temp = array(); foreach ($arr as $index => $val) { $temp[$index] = $val[$field]; } $args[$key] = $temp; } } $args[] = &$arr; call_user_func_array('array_multisort', $args); return array_pop($args);}$arr = sortArrByManyField($array1, 'id', SORT_ASC, 'name', SORT_ASC, 'age', SORT_DESC);
总结
PHP 提供了丰富的数组排序功能,能够满足不同场景的需求。无论是简单的单字段排序,还是复杂的多字段排序,都可以通过合理搭配 PHP 内置函数来实现。通过以上方法,开发者可以轻松实现对多维数组的排序需求。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月04日 14时49分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
SQL Server SQL语句调优技巧
2019-03-05
用C#实现封装-徐新帅-专题视频课程
2019-03-05
C语言学习从初级到精通的疯狂实战教程-徐新帅-专题视频课程
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
NAT工作原理
2019-03-05
Processes, threads and goroutines
2019-03-05
c++中的10种常见继承
2019-03-05
语义化版本编号(Semantic Versioning)
2019-03-05
E28 LoRa模块透传 定点传输 RSSI测试与MicroPython应用
2019-03-05
抽离css文件
2019-03-05
babel预设、插件和webpack中运行
2019-03-05
Vue学习—深入剖析渲染函数
2019-03-05
Vue学习—深入剖析函数式组件
2019-03-05
基于selenium的分布式爬虫-微浏览器
2019-03-05
网络编程一 tcp的一些信号处理
2019-03-05
简单Makefile的编写
2019-03-05
使用BAT批处理 匹配查找指定文件夹,并在当文件夹下创建空文件
2019-03-05
VS2017运行任意多线程的c++程序,VS2017闪退问题
2019-03-05
wxpython的Hello,World代码探索
2019-03-05