以如下二维数组为例,需求是将数组以age字段排序,注意age字段有相同的情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | $arr = array ( array ( 'name' => '冬瓜1' , 'age' =>28 ), array ( 'name' => '冬瓜2' , 'age' =>14 ), array ( 'name' => '冬瓜3' , 'age' =>59 ), array ( 'name' => '冬瓜4' , 'age' =>23 ), array ( 'name' => '冬瓜5' , 'age' =>23 ), array ( 'name' => '冬瓜6' , 'age' =>21 ) ); |
通常的取键值键名排好序,再拼接的方式也能实现排序,但是遇到排序字段值出现相等的情况会出现覆盖,其实php本身提供了一个方便快捷的函数,以下:
1 2 | array_multisort (array_column( $arr , 'age' ),SORT_DESC, $arr ); print_r( $arr ); |
其中array_column(数组,键值) 从多维数组中取出某个键值的一列,返回一个一维数组;
array_multisort(数组(一维数组),排序方式(SOTR_ASC,SOTR_DESC),其他数组(可以是二维的))
上一篇:
去掉字符串中的emoji表情字符
下一篇:
php对图片二进制流的处理
友情提示:垃圾评论一律封号...