2015-10-12 33 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

對不起。新發布在這裏。接受答覆,再次非常感謝你。 –