需求是按照last_name从大到小的顺序重新排列数组,可以使用array_multisort函数来解决这个问题,代码如下:

1、对单个字段进行排序

<?php
$data = array(
  array(
    'id' => 5698,
    'first_name' => 'Bill',
    'last_name' => 'Gates',
  ),
  array(
    'id' => 4767,
    'first_name' => 'Steve',
    'last_name' => 'Aobs',
  ),
);

//根据字段last_name对数组$data进行降序排列
$last_names = array_column($data,'last_name');
array_multisort($last_names,SORT_DESC,$data);1)、对单个字段进行排序

2、对多个字段进行排序

对多维数组(以二位数组为例)进行排序:
$arr = array(
    '0' => array(
        'num1' => 3,
        'num2' => 27 
    ),
    '1' => array(
        'num1' => 5,
        'num2' => 50
    )
);
foreach ( $arr as $key => $row ){
    $num1[$key] = $row ['num1'];
    $num2[$key] = $row ['num2'];
} 
array_multisort($num1, SORT_ASC, $num2, SORT_DESC, $arr); 
print_r($arr);
//result:Array([0]=>Array([num1]=>3 [num2]=>78) [1]=>Array([num1]=>3 [num2]=>27) [2]=>Array([num1]=>4 [num2]=>44) [3]=>Array([num1]=>5 [num2]=>50))
我 秦始皇 打钱