四级多级排序使用usort

时间:2015-10-12 19:30:35

标签: php sorting 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']]
);

有没有人有比较好的比较功能?我只进行了单级排序。

1 个答案:

答案 0 :(得分:1)

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

$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;
});