按键php排序关联数组

时间:2018-04-20 16:38:06

标签: php arrays sorting

我有一个数组

$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 方法,但我不明白在这种情况下如何使用它。

1 个答案:

答案 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