如何按内部数组键对多维数组进行排序


How to sort a multidimensional array by an internal array key?

可能的重复项:
PHP 按子值对数组进行排序

我有一个多维数组,如下所示:

Array => (
    [0] => Array(
        [a] => abcd,
        [b] => 22
    ),
    [1] => Array(
        [a] => defg,
        [b] => 12
    ),
    .....
)

我想按内部数组中索引b的值对这个数组进行排序。如果我想按降序排序,那么这个例子现在就可以了。但是,如果我想按升序排序,预期的输出将是:

    Array => (
    [0] => Array(
        [a] => defg,
        [b] => 12
    ),
    [1] => Array(
        [a] => abcd,
        [b] => 22
    ),
    .....
)

谢谢!

你可以试试这个函数:

bool uasort ( array &$array , callback $cmp_function )

这是我的代码:

$arr = array(
    0 => array('a' => 'abcd','b' => 22),
        1 => array('a' => 'defg','b' => 12),
    2 => array('a' => 'dfdf','b' => 32)
);
uasort($arr,'mul_sort');
function mul_sort($a,$b)
{
    if($a['b'] > $b['b'])
        return 1;//here,if you return -1,return 1 below,the result will be descending 
    if($a['b'] < $b['b'])
        return -1;
    if($a['b'] == $b['b'])
        return 0;
}
print_r($arr);
output:
---------- PHP ----------
Array
(
    [1] => Array
        (
            [a] => defg
            [b] => 12
        )
    [0] => Array
        (
            [a] => abcd
            [b] => 22
        )
    [2] => Array
        (
            [a] => dfdf
            [b] => 32
        )
)