2015-10-12 36 views
0

我有以下数组我需要做一个多级排序。我需要在房间里分类,然后安全,然后抽屉,然后架子。四级多级排序使用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?我只进行单层排序。

回答

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; 
}); 
+0

完美。非常感谢 –

+0

如果这回答了你的问题,你应该接受它。 –

+0

对不起。新发布在这里。接受答复,再次非常感谢你。 –