php 三维排序数组

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

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

Array
(
[0] => Array
    (
        [0] => Array
            (
                [data] => 7
                [field] => 1
                [type] => string
            )

        [1] => Array
            (
                [data] => 2011/07/13
                [field] => -2
                [sort] => 1310594015
            )

        [2] => Array
            (
                [data] => admin
                [field] => -1
                [sort] => admin
            )
    )

[1] => Array
    (
        [0] => Array
            (
                [data] => 6
                [field] => 1
                [type] => string
            )

        [1] => Array
            (
                [data] => 2011/07/14
                [field] => -2
                [sort] => 1310667194
            )

        [2] => Array
            (
                [data] => admin
                [field] => -1
                [sort] => admin
            )
    )
)

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

php sorting
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.