PHP二维数组排序

2020-04-26编程23

二维数组排序以前都是自己手写方法实现,最近突然看到一个更加简便的方法,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进行排序.