我有一个三维数组,我想根据第三维中的值对第一维中的数组进行排序。 就像下面这样:
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]。
usort($allArray,function($a,$b){
return $a[0]['data']-$b[0]['data'];
})
基于深度列按升序对每一行进行排序的现代 PHP 语法如下所示:Demo
usort($array, fn($a, $b) => $a[0]['data'] <=> $b[0]['data']);
var_export($array);
<=>
是三向比较运算符。 $a <=> $b
表示升序排序,$b <=> $a
表示降序排序。