根据每个项目的第一个子项中的指定列值对 3d 数组的第一级进行排序

问题描述 投票:0回答:2

我有一个三维数组,我想根据第三维中的值对第一维中的数组进行排序。 就像下面这样:

[
    [
        ['data' => 7, 'field' => 1, 'type' => 'string'],
        ['data' => '2011/07/13', 'field' => -2, 'sort' => 1310594015],
        ['data' => 'admin', 'field' => -1, 'sort' => 'admin']
    ],
    [
        ['data' => 6, 'field' => 1, 'type' => 'string'],
        ['data' => '2011/07/14', 'field' => -2, 'sort' => 1310667194],
        ['data' => 'admin', 'field' => -1, 'sort' => 'admin']
    ]
]

我想根据“data”键的值对第一级的数组(即只有 2 个)进行排序,在第三级向下。在这种情况下,第一级的两个数组应该交换,因此“数据”值为 6 的数组位于值为 7 的数组之前。 包含“data”键的数组将始终位于第二层的位置 [0]。

php arrays sorting multidimensional-array
2个回答
5
投票
usort($allArray,function($a,$b){
     return $a[0]['data']-$b[0]['data'];
})

0
投票

基于深列按升序对每一行进行排序的现代 PHP 语法如下所示:Demo

usort($array, fn($a, $b) => $a[0]['data'] <=> $b[0]['data']);
var_export($array);

<=>
是三向比较运算符。
$a <=> $b
表示升序排序,
$b <=> $a
表示降序排序。

© www.soinside.com 2019 - 2024. All rights reserved.