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字段的升序输出
-----END
影子是一个会撒谎的精灵,它在虚空中流浪和等待被发现之间;在存在与不存在之间....