我有一个数组
$array = [
0 =>
[
'name' => 'John',
'age' => 24,
'letter' => 'A'
],
1 =>
[
'name' => 'Nathan',
'age' => 24,
'letter' => 'B'
],
2 =>
[
'name' => 'Andy',
'age' => 26,
'letter' => 'C'
]
...
];
我只有3个字母类型:A,B,C。所以,我需要按字母值对此数组进行排序。我需要按此顺序获取 letter 值的商品:C - > A - > B.
我知道我需要使用 usort 方法,但我不明白在这种情况下如何使用它。
答案 0 :(得分:1)
创建一个定义所需顺序的数组。
public class ApplicationRoleViewModel
{
public string Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int NumberOfUsers { get; set; }
}
然后将该数组传递到Users
比较函数$order = ['C' => 0, 'A' => 1, 'B' => 2];
。在比较功能中,使用您要排序的项目中的字母,按键在usort
数组中查找排序顺序。
use
您还可以创建$order
数组,而无需使用usort($array, function($a, $b) use ($order) {
return $order[$a['letter']] <=> $order[$b['letter']];
});
$sort