Php 排序二维数组时保留数组键
这是我的2D阵列:Php 排序二维数组时保留数组键,php,arrays,multidimensional-array,sorting,Php,Arrays,Multidimensional Array,Sorting,这是我的2D阵列: $a = array( '6' => array(10, 5), '5' => array(20, 7), '40' => array(15, 9) ); 我可以简单地用array\u multisort进行排序: foreach ($a as $k => $r) { $keys[$k] = $r[1]; } array_multisort($keys, SORT_DESC, $a); 但它会清除键(“6”、“5”
$a = array(
'6' => array(10, 5),
'5' => array(20, 7),
'40' => array(15, 9)
);
我可以简单地用array\u multisort
进行排序:
foreach ($a as $k => $r) {
$keys[$k] = $r[1];
}
array_multisort($keys, SORT_DESC, $a);
但它会清除键(“6”、“5”、“40”):
array\u multisort
是否有保留数组键的参数?更简单的解决方案是使用:
谢谢但是如何更改排序方向?切换
$a
和$b
参数。是否要对键进行排序?比如40,6,5@W.Kristianto:否,我要对数组进行排序。但是我也想保留这些键,不想用数组数字键(从0开始)替换它们
Array
(
[0] => Array
(
[0] => 15
[1] => 9
)
[1] => Array
(
[0] => 20
[1] => 7
)
[2] => Array
(
[0] => 10
[1] => 5
)
)
uasort($a, function ($a, $b) { return $a[1] - $b[1]; });