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