//将二维数组按某一元素的降序或者升序来重新排序,
//
//方法一.以下.稍微复杂一点
$arrUsers = array(
array(
'id' => 1,
'name' => '张三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '赵六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黄七',
'age' => 20,
),
);
$sort = array(
'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'age', //排序字段
);
$arrSort = array();
foreach($arrUsers AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
}
var_dump($arrUsers);
//方法二.简单一点的方法,$field需要排序的键,
//array_multisort() 函数返回排序数组:
//array_multisort — 对多个数组或多维数组进行排序
$field = 'age';
array_multisort(array_column($arr, $field), SORT_DESC, $arr);
相关文章
- linux C(hello world) 二维数组的练习
- Coursera Algorithms week3 快速排序 练习测验: Selection in two sorted arrays(从两个有序数组中寻找第K大元素)
- C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)
- vijos1334 NASA的食物计划(二维费用的背包问题)
- 164. Maximum Gap *HARD* -- 无序数组找出排序后连续元素的最大间隔
- php三维数组变二维数组
- OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法
- mysql进阶(八)怎么对varchar类型排序问题
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- PHP 数组排序方法总结