使用 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;
});
我有以下数组需要对其进行多级排序。我需要对房间进行分类,然后是保险箱,然后是抽屉,然后是架子。
$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;
});