主要用到两个方法,array_column 以及 array_multisort

我们来看下这两个函数的定义和用法:


用法:
array_column() 返回输入数组中某个单一列的值

定义:
array_column(array,column_key,index_key);

参数:
array   必需。规定要使用的多维数组(记录集)。

column_key  必需。需要返回值的列。可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。

index_key   可选。用作返回数组的索引/键的列。


用法:
array_multisort — 对多个数组或多维数组进行排序
array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
注:关联(string)键名保持不变,但数字键名会被重新索引。

定义:
array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] ) : bool

参数:
array1
要排序的 array。

array1_sort_order
之前 array 参数要排列的顺序。 SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序。

此参数可以和 array1_sort_flags 互换,也可以完全删除,默认是 SORT_ASC 。

array1_sort_flags
为 array 参数设定选项:

排序类型标志:

SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
SORT_NUMERIC - 按照数字大小比较
SORT_STRING - 按照字符串比较
SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。
SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。
参数可以和 array1_sort_order 交换或者省略,默认情况下是 SORT_REGULAR。
...
可选的选项,可提供更多数组,跟随在 sort order 和 sort flag 之后。 提供的数组和之前的数组要有相同数量的元素。 换言之,排序是按字典顺序排列的。








下面我们来看个例子:

$multiArray = [
    [
        'name' => 'James',
        'score' => '90',
    ],
    [
        'name' => 'Jenny',
        'score' => '96',
    ],
    [
        'name' => 'Zoe',
        'score' => '99',
    ],
];

//根据score对$multiArray进行倒序排序:
$sortArray = array_column($multiArray, 'score'); // 取出score列的数据
array_multisort($sortArray, SORT_DESC, $multiArray); // 得出排序结果