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()函数用我自己的模式对季度进行排序?

请让我知道你在想什么!谢谢!

4

1 回答 1

3

您应该使用 uasort 功能。您的代码可能如下所示:

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

uasort ( $quarters , 'myComparison' );

这将使用$quarters["Fall Quarter 2012"]["20121018"]例如

于 2012-10-12T18:40:03.437 回答