使用Uasort对多维数组进行排序

Noo*_*ead 3 php arrays sorting multidimensional-array array-difference

目前我有一些看起来像这样的多维数组

Array ( 
    [71] => Array ( [author] => 2 [date] => 1392867376 ) 
    [49] => Array ( [author] => 2 [date] => 1392868188 ) 
    [75] => Array ( [author] => 14 [date] => 1392867388) 
    [67] => Array ( [author] => 2 [date] => 1392870805 ) 
)
Run Code Online (Sandbox Code Playgroud)

我想按"约会"对它们进行排序,但我不知道如何.我试过这个:

function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
uasort($visited, 'cmp');
Run Code Online (Sandbox Code Playgroud)

但由于我不知道,也找不到如何使用"比较功能"的参考,我在太空中.我所能找到的只是非常模糊的东西.目前这个由"作者"排序.

有人可以向我解释这些比较函数是如何工作的(或指向我的在线资源)并告诉我需要做什么来按"日期"对这个数组进行排序 - 同时保持所有密钥完好无损(密钥不得更改或删除)

非常感谢您提供的任何帮助.

PS:我尝试过array_multisort - 它擦除了我的密钥.

小智 7

试试这个cmp函数:

function cmp($a, $b) {
    if ($a['date'] == $b['date']) {
        return 0;
    }
    return ($a['date'] < $b['date']) ? -1 : 1;
}
Run Code Online (Sandbox Code Playgroud)

它应该工作.