首先了解下以下两个函数:
1.array_column() 返回输入数组中某个单一列的值。
2.array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多
个值相同,它将对下一个数组进行排序。
具体实现代码实例:
$data = array(
array(
'id' => 5698,
'first_name' => 'Bill',
'last_name' => 'Gates',
),
array(
'id' => 4767,
'first_name' => 'Steve',
'last_name' => 'Aobs',
),
array(
'id' => 3809,
'first_name' => 'Mark',
'last_name' => 'Zuckerberg',
)
);
//根据字段last_name对数组$data进行降序排列
$last_names = array_column($data,'last_name');
array_multisort($last_names,SORT_DESC,$data);
var_dump($data);
//可以使用多个排序条件
$last_names = array_column($data,'last_name');
$ids= array_column($data,'id');
array_multisort($last_names,SORT_DESC,$ids,SORT_ASC,$data);
var_dump($data);
注意:报错array_multisort(): Argument #2 is expected to be an array or a sort flag,是因为参数中的第二个参数是常量SORT_DESC,SORT_ASC, 代码中写成了'SORT_DESC' 然后就出现了上面的错误(更多的常量参数可参考官方文档:https://www.php.net/manual/zh/function.array-multisort.php)
文章来源于:https://www.cnblogs.com/wenzheshen/p/9455554.html