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