以如下二维数组为例,需求是将数组以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),其他数组(可以是二维的))

相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!