PHP二维数组排序

2020-04-26编程6

二维数组排序以前都是自己手写方法实现,最近突然看到一个更加简便的方法,array_multisort()和array_column()方法.

 

array_column()方法是取出数组中指定列的值,用它可以取出一个二维数组某列的值.

array_column(array $array, $column, $index_key = null);

此方法要求PHP5.5+,如果环境不支持自己写一个for循环取出要用的列就行了.

 

array_multisort()方法用来多个数组进行排序.

array_multisort(array &$array1, $array1_sort_order, $array1_sort_flags, array2, array3...);

使用这两个方法就能简单快速进行二维数组排序.

array_multisort(array_column(二维数组, '排序列'), 排序, 类型, 二维数组);

排序:

SORT_ASC 升序

SORT_DESC 降序

 

类型:

SORT_REGULAR 默认,将每一项按常规顺序排列

SORT_NUMERIC 将每一项按数字顺序排列

SORT_STRING 将每一项按字母顺序排列

 

工作中要对二维数组进行排序,要求是字符少的在最前.

实际使用中几次都不能达到想要的结果,最后不得以写了个foreach循环mb_strlen获得每个要排序列的字符长度,然后再用array_multisort+array_column进行排序.