按第二级键排序多维数组

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

请告诉我您的想法!谢谢!

1个回答

3

您应该使用uasort函数。您的代码可能看起来像这样:

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

uasort ( $quarters , 'myComparison' );

例如,使用$quarters["秋季学期2012年"]["20121018"]进行排序。


谢谢!这个排序很好,但我怎么保留季度的名称呢?当我像这样排序时,它会将我的键(Fall Quarter 2012/Summer Quarter 2012/ Spring Quarter 2012)转换为(0/1/2)。而且应该是“>”,而不是“<”。 - Andrey Elenskiy
还将比较函数中的 < 改为了 > - DiverseAndRemote.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接