php二维数组按某个键值排序
2017-11-15 阅读数:223

以如下二维数组为例,需求是将数组以age字段排序,注意age字段有相同的情况:

$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本身提供了一个方便快捷的函数,以下:

array_multisort(array_column($arr,'age'),SORT_DESC,$arr);
print_r($arr);

其中array_column(数组,键值)  从多维数组中取出某个键值的一列,返回一个一维数组;

array_multisort(数组(一维数组),排序方式(SOTR_ASC,SOTR_DESC),其他数组(可以是二维的))


前方10米有沙发可抢!
大人,请先右上角登个录 ↑
Copyright@2017-2020 www.dongguagua.com All Right Reserived 京ICP备17025269号