数组按时间戳排序PHP

Mr.*_*oon 11 php arrays sorting

我有问题以我想要的方式排序数组.

这是我的数组的示例输出:http://pastebin.com/GJNBmqL7

数据来自各种数据库,因此我将数据放入数组的方式受到限制.

[2]总是包含一个linux时间戳.现在我希望整个数组按时间戳排序,首先是最低值.

我该怎么做呢?

Hea*_*ota 11

使用usort接受自定义函数来排序数组:

usort

你的功能可能看起来像:

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


mjs*_*ier 9

这里是一个array_multisort示例:

foreach ($array as $key => $node) {
   $timestamps[$key]    = $node[2];
}
array_multisort($timestamps, SORT_ASC, $array);
Run Code Online (Sandbox Code Playgroud)


Coi*_*_op 7

您只需使用自定义排序即可完成此操作.所以假设你的日期戳总是索引2:

function sortArray($a1, $a2){
    if ($a1[2] == $a2[2]) return 0;
    return ($a1[2] > $a2[2]) ? -1 : 1;
}

usort($array, "sortArray");
Run Code Online (Sandbox Code Playgroud)


Emi*_*röm 5

usort是最容易使用的,但您也可以查看array_multisort.