PHP在保留数组键的同时对维度关联数组进行排序


PHP sort dimension associative array while keeping array key

我有这样的数组。。

<?php
$a = array(
    "2" => array(
        "v" => 1
    ),
    "3" => array(
        "v" => 2
    )
);
usort($a, function($a, $b)
{
    return $a['v'] < $b['v'];
});

当我使用usortv的值排序时,它返回

Array
(
    [0] => Array
        (
            [v] => 2
        )
    [1] => Array
        (
            [v] => 1
        )
)

但我希望密钥不被修改,例如

Array
(
    [3] => Array
        (
            [v] => 2
        )
    [2] => Array
        (
            [v] => 1
        )
)

有可能吗?

使用uasort保留密钥

<?php
$a = array(
    "2" => array(
        "v" => 1
    ),
    "3" => array(
        "v" => 2
    )
);
uasort($a, function($a, $b)
{
    return $a['v'] < $b['v'];
});