2012-10-12 56 views
3

我有一個數組,看起來像這樣:排序多維數組的第二級重點

array(3) { 
    ["Fall Quarter 2012"]=> array(2) { 
      [20121018]=> array(1) { 
       ["agenda"]=> string(55) "Fall_2012/Agenda_20121018.pdf" 
      } 
      [20121011]=> array(2) { 
       ["agenda"]=> string(55) "Fall_2012/Agenda_20121011.pdf" 
       ["minutes"]=> string(56) "Fall_2012/Minutes_20121011.pdf" 
      } 
    } 
    ["Spring Quarter 2012"]=> array(1) { 
      [20120413]=> array(1) { 
       ["agenda"]=> string(57) "SPRing_2012/Agenda_20120413.pdf" 
      } 
    } 
    ["Summer Quarter 2012"]=> array(1) { 
      [20120610]=> array(2) { 
       ["agenda"]=> string(57) "Summer_2012/Agenda_20120610.pdf" 
       ["minutes"]=> string(58) "Summer_2012/Minutes_20120610.pdf" 
      } 
    } 
} 

而且我想用日期鍵排序,使宿舍是在正確的順序秋/夏/彈簧。這應該是這樣的:

array(3) { 
    ["Fall Quarter 2012"]=> array(2) { 
      [20121018]=> array(1) { 
       ["agenda"]=> string(55) "Fall_2012/Agenda_20121018.pdf" 
      } 
      [20121011]=> array(2) { 
       ["agenda"]=> string(55) "Fall_2012/Agenda_20121011.pdf" 
       ["minutes"]=> string(56) "Fall_2012/Minutes_20121011.pdf" 
      } 
    } 
    ["Summer Quarter 2012"]=> array(1) { 
      [20120610]=> array(2) { 
       ["agenda"]=> string(57) "Summer_2012/Agenda_20120610.pdf" 
       ["minutes"]=> string(58) "Summer_2012/Minutes_20120610.pdf" 
      } 
    } 
    ["Spring Quarter 2012"]=> array(1) { 
      [20120413]=> array(1) { 
       ["agenda"]=> string(57) "SPRing_2012/Agenda_20120413.pdf" 
      } 
    } 
} 

有沒有辦法得到這個結果通過使用日期排序,或者我應該使用uksort()功能,用我自己的方式季度排序?

請讓我知道您的想法!謝謝!

回答

3

你應該使用uasort函數。你的代碼可能是這個樣子:

function myComparison($a, $b){ 
    return (key($a) > key($b)) ? -1 : 1; 
} 

uasort ($quarters , 'myComparison'); 

這將排序使用$quarters["Fall Quarter 2012"]["20121018"]例如

+0

謝謝!這種情況很好,但我如何保留宿舍的名字?當我這樣排序時,它將我的鑰匙(2012年秋季季/ 2012年夏季季)變成(0/1/2)。它也應該是「>」而不是「<」。 –

+0

我已經更新了我的答案,使用保留鍵的uasort –

+0

並且還在比較函數中更改了'<' to a '>' –