PHP对二维数组按指定字段排序

问题:对于一个指定的二维数组,比如中间有一个字段 sort,希望按sort升序或者是降序排。用到两个函数。

1、array_column() 返回输入数组中某个单一列的值。

 

 2、array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多

个值相同,它将对下一个数组进行排序。

 

 3、实例代码如下

$a = [
    [
        'n' => '狗屎',
        'd' => 'dogshit',
        'desc' => 2
    ],
    [
        'n' => '鸡屎',
        'd' => 'chickenDroppings',
        'desc' => 1
    ],
    [
        'n' => '猪粪',
        'd' => 'pigManure',
        'desc' => 9
    ],
    [
        'n' => '牛粪',
        'd' => 'cowDung',
        'desc' => 5
    ],
    [
        'n' => '真香',
        'd' => 'WangJingze',
        'desc' => 8
    ],
];
echo '<pre>';
var_dump($a);
$b = array_column($a, 'desc');
array_multisort($b, SORT_ASC, $a);
var_dump($a);

最后输出就是按desc字段的升序输出

posted @ 2020-10-03 11:58  在斑马线上散布  阅读(766)  评论(0编辑  收藏  举报
夫人不言,言必有中。这是高级臣僚的一种可贵品质,言辞精炼,直抵要害。