【问题标题】:PHP: multi dimension array with multiple sortPHP:具有多重排序的多维数组
【发布时间】:2015-10-20 00:01:04
【问题描述】:

我有一个数组,每个数组有 4 个值

$array[0] = array('amount' => '98.60', 'typeA' => '98.52', 'typeB' => '58.52', 'typeC' => '90.2');
$array[1] = array('amount' => '55.80', 'typeA' => '25.36', 'typeB' => '36.54', 'typeC' => '36.99');
$array[2] = array('amount' => '42.68', 'typeA' => '64.26', 'typeB' => '65.87', 'typeC' => '99.24');
$array[3] = array('amount' => '812.3', 'typeA' => '36.27', 'typeB' => '23.25', 'typeC' => '94.35');

我需要按照每个键的最大值来排列数组,顺序为:

  1. A 型
  2. B 型
  3. C 型

所以最后我会看看哪个是最重要的。

希望能得到一些帮助,谢谢!

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    $data = array(array('amount' => '98.60', 'typeA' => '98.52', 'typeB' => '58.52', 'typeC' => '90.2'), array('数量' => '55.80', 'typeA' => '25.36', 'typeB' => '36.54', 'typeC' => '36.99'), 数组('amount' => '42.68', 'typeA' => '64.26', 'typeB' => '65.87', 'typeC' => '99.24'), array('amount' => '812.3', 'typeA' => '36.27', 'typeB' => '23.25', 'typeC' => '94.35'));

    // 获取列列表

    foreach ($data as $key => $row) {

    $volume[$key]  = $row['typeA'];
    $edition[$key] = $row['typeB'];
    $edition1[$key] = $row['typeC'];
    

    }

    array_multisort($volume, SORT_DESC, $edition, SORT_DESC, $edition1, SORT_DESC, $data);

    回声''; print_r($data);

    【讨论】:

      【解决方案2】:

      array_multisort() 可用于一次对多个数组进行排序,或按一维或多维对多维数组进行排序。

      http://php.net/manual/en/function.array-multisort.php

      <?php
          $data[] = array('volume' => 67, 'edition' => 2);
          $data[] = array('volume' => 86, 'edition' => 1);
          $data[] = array('volume' => 85, 'edition' => 6);
          $data[] = array('volume' => 98, 'edition' => 2);
          $data[] = array('volume' => 86, 'edition' => 6);
          $data[] = array('volume' => 67, 'edition' => 7);
      
          // Pass the array, followed by the column names and sort flags
          $sorted = array_orderby($data, 'volume', SORT_DESC, 'edition', SORT_ASC);
      ?>
      

      这是另一个很好的使用示例:

      PHP sort array by two field values

      【讨论】:

        猜你喜欢
        • 2020-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-08
        相关资源
        最近更新 更多