PHP 多维数组根据字段自然排序
2023-06-13 09:15:39 时间
warning: 这篇文章距离上次修改已过225天,其中的内容可能已经有所变动。
在写框架的时候遇到了需要根据多维数组元素的一些值排序的问题,用PHP5.3的闭包功能写了这个函数。
/**
* 多维数组自然排序
* @author wang@rehiy.com
* @param array $array 待排序数组
* @param string $by,$b2,b3 排序字段,至少一个
*/
function array_order_by(&$array, $by) {
$args = func_get_args(); $argn = func_num_args();
uasort($array, function($a, $b) use($args, $argn) {
for($i = 1; $i < $argn, $by = $args[$i]; $i++) {
$rs = strnatcmp(isset($a[$by])?$a[$by]:'', isset($b[$by])?$b[$by]:'');
if($rs !== 0 || empty($args[$i+1])) { return $rs; }
}
return 0;
});
}
$menu = array (
array('order' => '2_0', 'data' => '6_name'),
array('order' => '1_0', 'data' => '19_name'),
array('order' => '1_0', 'data' => '12_name'),
array('order' => '1_1_0', 'data' => '1_name'),
array('order' => '2_1_0', 'data' => '5_name'),
array('order' => '1_2_0', 'data' => '45_name'),
array('order' => '1_2_1_0', 'data' => '8_name'),
);
array_order_by($menu, 'order', 'data');
print_r($menu);
相关文章
- 【说站】php数组排序并输出
- 【说站】php数组排序保持索引
- PHP 二维关联数组根据其中一个字段排序
- PHP implode():数组转字符串
- PHP实现Linux脚本之旅(php调用linux脚本)
- PHP asort():对数组排序(升序),并保持索引关系
- PHP 如何调用 MySQL 函数(php调用mysql函数)
- PHP与MSSQL结合,实现灵活高效的程序开发(php mssql 程序)
- PHP简单数组排序实现代码
- PHP多维数组排序实现代码
- PHP数组学习排序全接触
- php数组操作(增加,删除,查询,排序)等函数说明
- PHP下对数组进行排序的函数
- php关于array_multisort多维数组排序的使用说明
- php数据结构算法(PHP描述)简单选择排序simpleselectionsort
- php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
- php数组函数序列之asort()-对数组的元素值进行升序排序,保持索引关系
- 如何判断php数组的维度
- 解析PHP中数组元素升序、降序以及重新排序的函数
- php二维数组排序详解
- PHP二维数组排序的3种方法和自定义函数分享
- php实例分享之二维数组排序
- PHP中数组的分组排序实例
- php数组中包含中文的排序方法
- PHP自动重命名文件实现方法