Php 按键对关联数组排序
我有一个数组Php 按键对关联数组排序,php,arrays,sorting,Php,Arrays,Sorting,我有一个数组 $array = [ 0 => [ 'name' => 'John', 'age' => 24, 'letter' => 'A' ], 1 => [ 'name' => 'Nathan', 'age' => 24, 'letter' => 'B' ], 2 => [
$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。因此,我需要按字母值对数组进行排序。我需要按以下顺序获取带有字母值的物品:C->A->B
我知道我需要使用usort方法,但我不知道在这种情况下如何使用它。创建一个定义所需顺序的数组
$order = ['C' => 0, 'A' => 1, 'B' => 2];
然后使用use
将该数组传递到usort
比较函数中。在比较函数中,使用正在排序的项目中的字母,按键在$order
数组中查找排序顺序
usort($array, function($a, $b) use ($order) {
return $order[$a['letter']] <=> $order[$b['letter']];
});
在下一个例子中,我需要按字母顺序将这个结果按“name”@vasya排序,然后按字母排序,然后按名称进行相同的排序?或者叫度假村的名字?在同一个地方sort@vasya查看我以前的一个答案:您可以将名称添加到比较函数中,如图所示。如果你对此有任何疑问,请告诉我。
$order = array_flip(['C', 'A', 'B']);