使用 usort 进行四级多级排序

Four Level Multi-Level Sort Using usort

我有以下数组需要对其进行多级排序。我需要对房间进行分类,然后是保险箱,然后是抽屉,然后是架子。

$eritems[] = array(
    'case_name' => $case['case_name'],
    'bag_number' => $check_in['f_bag_number'],
    'room' => $room[$check_in['f_room']],
    'safe' => $safe[$check_in['f_safe']],
    'drawer' => $drawer[$check_in['f_drawer']],
    'shelf' => $shelf[$check_in['f_shelf']]
);

有没有人有比较好的usort函数?我只进行了单级排序。

假设这些元素可以与 <> 进行比较。

$sorted_eritems = usort($eritems, function($a, $b)
{
    foreach (array('room', 'safe', 'drawer', 'shelf') as $sort_prop)
    {
        if ($a[$sort_prop] < $b[$sort_prop])
            return -1;
        else if ($a[$sort_prop] > $b[$sort_prop])
            return 1;
    }
    return 0;
});