【问题标题】:Sort 2D array according [duplicate]根据[重复]对二维数组进行排序
【发布时间】:2012-06-15 02:01:54
【问题描述】:

我想根据字段年份对以下二维数组进行排序?

Array
(

[0] => Array
(
    [from] => 44.91
    [to] => 53.56
    [next] => 108.88
    [year] => 2011

), 
[1] => Array
(
    [from] => 44.44
    [next] => 53.16
    [year] => 2010

), 
[2] => Array
(
    [from] => 42.83
    [next] => 51.36
    [year] => 2012
)
);

所以想要的结果是:

Array
(
[1] => Array
(
    [from] => 44.44
    [next] => 53.16
    [year] => 2010

), 
[0] => Array
(
    [from] => 44.91
    [to] => 53.56
    [next] => 108.88
    [year] => 2011

),
[2] => Array
(
    [from] => 42.83
    [next] => 51.36
    [year] => 2012
)
);

【问题讨论】:

    标签: php arrays


    【解决方案1】:

    您是否尝试过使用uasort()

    function cmp_year($a, $b) {
        if($a['year'] == $b['year']) return 0;
        return ($a['year'] < $b['year']) ? -1 : 1;
    }
    
    uasort($your_array, 'cmp_year');
    

    【讨论】:

      【解决方案2】:

      您可以使用array_multisort()

      foreach ($arr as $k => $v) {
        $years[$k] = $v['year'];
      }
      
      array_multisort($years, SORT_DESC, $arr);
      

      【讨论】:

      • 如何对嵌套数组做同样的事情,并且要排序的值在嵌套数组中,这是行不通的
      猜你喜欢
      • 2022-01-10
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2014-07-30
      • 2020-12-15
      • 2021-04-18
      相关资源
      最近更新 更多