将数组从高到低排序

use*_*300 0 php arrays sorting

在下面的数组中,我想将键顺序从高变为低(例如,2014年的数据首先出现).

print_r($array); 
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => Array
        (
            [year] => 2013
            [name] => xx
        )

    [1] => Array
        (
            [year] => 2014
            [name] => xx
        )
)
Run Code Online (Sandbox Code Playgroud)

我尝试过使用rsort,但只返回"1".

$array = rsort($array);
print_r($array);    //1
var_dump($array);   //bool(true).
Run Code Online (Sandbox Code Playgroud)

Ama*_*ali 5

rsort()只适用于一维数组.你有一个二维数组,所以你需要使用不同的函数,例如usort(),它允许你使用用户定义的比较函数进行排序:

usort($data, function ($a, $b) {
    return $a['year'] < $b['year'];
});
Run Code Online (Sandbox Code Playgroud)

输出:

Array
(
    [0] => Array
        (
            [year] => 2014
            [name] => xx
        )

    [1] => Array
        (
            [year] => 2013
            [name] => xx
        )

)
Run Code Online (Sandbox Code Playgroud)

工作演示