Php 对分块数组进行排序并理解它

Php 对分块数组进行排序并理解它,php,mysql,arrays,Php,Mysql,Arrays,我正在使用以下代码: $chunked = array_chunk($items,3,false); 其输出如下: array(11) { [0]=> array(3) { [0]=> string(10) "Volvo" [1]=> string(4) "1000" [2]=> string(7) "50000" } [1]=> array(3) { [0]=> strin

我正在使用以下代码:

$chunked = array_chunk($items,3,false);
其输出如下:

array(11) {
  [0]=>
  array(3) {
    [0]=>
    string(10) "Volvo"
    [1]=>
    string(4) "1000"
    [2]=>
    string(7) "50000"
  }
  [1]=>
  array(3) {
    [0]=>
    string(11) "Saab"
    [1]=>
    string(4) "1200"
    [2]=>
    string(7) "40000"
  }
  [2]=>
  array(3) {
    [0]=>
    string(7) "Lexus"
    [1]=>
    string(4) "900"
    [2]=>
    string(7) "55000"
  }
}
我想做的是根据这些标准对这个分块数组进行正确排序

  • 提取成本最高的2辆车(第三个数据点)
  • 在这两辆车中,检查哪辆车行驶了最多英里(第二个数据点)
  • 因此,产出将是:

  • 沃尔沃-50000-1000
  • 雷克萨斯55000-900

  • 希望有人能给我指出正确的方向。我对以这种方式使用数组非常陌生。

    您基本上是在寻找一个
    usort
    函数。根据:

    usort-使用用户定义的比较函数按值对数组排序

    首先,我将按照第三个键对整个数组进行排序(假设
    $z
    是您的数组)。然后取消设置最后一个元素并按第二个键调用数组:

    usort($z, function($a, $b) {
        return $b[2] - $a[2];
    });
    
    unset($z[2]);
    
    usort($z, function($a, $b) {
        return $b[1] - $a[1];
    });
    
    最后的值应为以下值:

    Array
    (
        [0] => Array
            (
                [0] => Volvo
                [1] => 1000
                [2] => 50000
            )
    
        [1] => Array
            (
                [0] => Lexus
                [1] => 900
                [2] => 55000
            )
    
    )