对于我来说,这是我如何按照对象字段对对象数组进行排序的:
代码:(演示)——按last_name ASC排序,然后按first_name ASC排序
<?php
$array = array(
(object)array(
'first_name' => 'Léa',
'last_name' => 'Weber',
),
(object)array(
'first_name' => 'Alexandre',
'last_name' => 'Dupont',
),
(object)array(
'first_name' => 'Léa',
'last_name' => 'Zotal',
),
(object)array(
'first_name' => 'Jérémie',
'last_name' => 'Hoffmann',
)
);
usort($array, function($a, $b) {
return [$a->last_name, $a->first_name]
<=>
[$b->last_name, $b->first_name];
});
var_export($array);
生产:
array (
0 =>
(object) array(
'first_name' => 'Alexandre',
'last_name' => 'Dupont',
),
1 =>
(object) array(
'first_name' => 'Jérémie',
'last_name' => 'Hoffmann',
),
2 =>
(object) array(
'first_name' => 'Léa',
'last_name' => 'Weber',
),
3 =>
(object) array(
'first_name' => 'Léa',
'last_name' => 'Zotal',
),
)
PHP7.4及更高版本的箭头语法。
使用宇宙飞船操作符(<=>),也就是“组合比较操作符”或“三向比较操作符”,对多列进行排序超级简单。
资源:https://wiki.php.net/rfc/combined-comparison-operator
https://stackoverflow.com/a/54647220/18090932