我有一个三维数组,我想根据第三维中的值对第一维中的数组进行排序。 就像下面这样:
[
[
['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]。
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
表示降序排序。