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']);