根据二维数组中的某个字段进行排序

简介: 根据二维数组中的某个字段进行排序

首先了解下以下两个函数:

1.array_column() 返回输入数组中某个单一列的值。

 

2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多

个值相同,它将对下一个数组进行排序。

具体实现代码实例:


<?php
$data = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Aobs',
  ),
  array(
    'id' => 3809,
    'first_name' => 'Mark',
    'last_name' => 'Zuckerberg',
  )
);
//根据字段last_name对数组$data进行降序排列
$last_names = array_column($data,'last_name');
array_multisort($last_names,SORT_DESC,$data);
var_dump($data);
?>

2.方法

/**
     * 二维数组按照键值降序排序
     * @param array $arr   待排序数组
     * @param string $key  键值
     * @return mixed
     */
    function sortByKeyDesc($arr, $key) {
 
        array_multisort(array_column($arr, $key), SORT_DESC, $arr);
        return $arr;
 
    }

 

目录
相关文章
|
算法
arr = [1,2,5,8,9,10,20,30,40] 有一个从小到大排序好的数组,现在输入一个数,要求按照原来的规律插入到数组中
arr = [1,2,5,8,9,10,20,30,40] 有一个从小到大排序好的数组,现在输入一个数,要求按照原来的规律插入到数组中
101 0
|
6天前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
10 3
|
机器学习/深度学习 索引
指针-哈希索引表单词排序
指针-哈希索引表单词排序
练习>>在二维数组中找出最大数,并输出行,列
练习>>在二维数组中找出最大数,并输出行,列
100 0
sort()排序以及多个属性数组对象排序(按条件排序)
sort()排序以及多个属性数组对象排序(按条件排序)
98 0
|
索引
labview数组数据一维数组二维数组索引行列元素替换子数组排序
labview数组数据一维数组二维数组索引行列元素替换子数组排序
212 0
|
C++
【C/C++】用指针方法对10个整数按由大到小顺序排序
##下面我们将对21 12 45 43 87 897 534 67 90 75这10个数,用下面的程序进行由大到小排序。
397 0
【C/C++】用指针方法对10个整数按由大到小顺序排序
1、 在一个排序的二维数组中,查找某个整数
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
78 0
|
vr&ar
【LeetCode1122】数组的相对排序(哈希or自定义sort)
没错,,简单题,就是说将arr1中有arr2的元素,则按照arr2的元素先排列(特别注意:这里的arr2的元素都是不同的,但是arr1中是可以元素重复的)
176 0
【LeetCode1122】数组的相对排序(哈希or自定义sort)