我有以下数组我需要进行多级排序。我需要对房间进行分类,然后是安全的,然后是抽屉,然后是货架。
$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']]
);
有没有人有比较好的比较功能?我只进行了单级排序。
答案 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;
});