我有问题以我想要的方式排序数组。Array按时间戳排序PHP
这是我的阵列的输出示例:http://pastebin.com/GJNBmqL7
数据来自各种数据库一次,所以我在我把数据放入数组的方式有限。
[2]总是包含一个linux时间戳。现在我想让整个数组按照该时间戳排序,并且首先使用最低值。
我该如何做到这一点?
我有问题以我想要的方式排序数组。Array按时间戳排序PHP
这是我的阵列的输出示例:http://pastebin.com/GJNBmqL7
数据来自各种数据库一次,所以我在我把数据放入数组的方式有限。
[2]总是包含一个linux时间戳。现在我想让整个数组按照该时间戳排序,并且首先使用最低值。
我该如何做到这一点?
这里一个array_multisort例如:
foreach ($array as $key => $node) {
$timestamps[$key] = $node[2];
}
array_multisort($timestamps, SORT_ASC, $array);
使用usort接受自定义函数数组进行排序:
你的函数可能看起来像:
function cmp($a, $b)
{
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
使用usort并创建自己的功能,http://php.net/manual/en/function.usort.php
function cmp($a, $b)
{
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
$data = array(/* your data */);
usort($data, "cmp");
这可能很简单r将数据插入到单个临时表中,然后使用ORDER BY时间戳选择它
您可以简单地通过使用自定义排序来完成此操作。因此,假如你的邮戳总是指标2:
function sortArray($a1, $a2){
if ($a1[2] == $a2[2]) return 0;
return ($a1[2] > $a2[2]) ? -1 : 1;
}
usort($array, "sortArray");
usort是最简单的工作,但你也可以检查出array_multisort。
这可以用下面的代码来实现。
usort($variable, function ($a, $b) {
if ($a['timestamp'] == $b['timestamp']) {
return 0;
}
return ($a['timestamp'] < $b['timestamp']) ? 1 : -1;
});
这将导致$变量的排序数组,假设时间戳在 $ variable [0] ['timestamp']; $ variable [0] ['timestamp']; 等。
谢谢,这就像一个魅力。 – 2011-05-10 11:49:02