【问题标题】:sorting an array with unknown keys and and maintain index association in php对具有未知键的数组进行排序并在php中维护索引关联
【发布时间】:2012-03-12 15:17:24
【问题描述】:

我有一个数组,其中包含从 2 次执行中获取的统计值及其差异。统计数据的名称是关键,我不知道。我要维护索引关联

是这样的

$array["statistic_name_1"][0] = 5
$array["statistic_name_1"][1] = 4
$array["statistic_name_1"][2] = 1   

$array["statistic_name_2"][0] = 10
$array["statistic_name_2"][1] = 4
$array["statistic_name_2"][2] = 6

$array["statistic_name_3"][0] = 15
$array["statistic_name_3"][1] = 10
$array["statistic_name_3"][2] = 5

...

我想根据执行的差异(即[key][2])按数字降序对它进行排序

我已经尝试过 asort 但我找不到一种方法来告诉它根据差异进行排序

【问题讨论】:

    标签: php sorting indexing associations asort


    【解决方案1】:

    试试这样的:

    function cmp($a, $b)
    {
        return $b[2] - $a[2]
    }
    
    uasort($array, "cmp");
    

    http://www.php.net/manual/en/function.uasort.php

    要将所有内容放在一行上,您可以这样做:

    uasort($array, function($a, $b){ return $b[2] - $a[2] });
    

    【讨论】:

      【解决方案2】:

      使用uasort 维护键关联

      uasort($array,function ($a,$b){
          if ($a[2] == $b[2]) {
              return 0;
          }
          return ($a[2] > $b[2]) ? -1 : 1;
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-18
        • 2016-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-17
        • 1970-01-01
        相关资源
        最近更新 更多