我有一个看起来像这样的数据结构
Array
(
[0] => Array
(
[0] => something
[1] => 1296986500
)
[1] => Array
(
[0] => something else
[1] => 1296600100
)
[2] => Array
(
[0] => another thing
[1] => 1296831265
)
)
我正在尝试根据 unix 时间戳整数对数组进行排序。以下函数对我来说看起来不错,但没有按照我想要的方式排序。
function cmp($a, $b)
{
if ($a[1] == $b[1]) {
return 0;
}
return ($a[1] < $b[1]) ? -1 : 1;
}
注意 在类中调用此函数时,OO 语法如下
uasort($_data, array($this, 'cmp'));
按升序对时间戳进行排序;对于降序,请翻转第二个比较(即将
$a[1] < $b[1]
更改为 $a[1] > $b[1]
):
function cmp($a, $b)
{
if ($a[1] == $b[1]) {
return 0;
}
return ($a[1] > $b[1]) ? -1 : 1;
}
您可以设置时间戳作为基准。并使用 array_multisort()。
<?php
// Obtain a list of columns
foreach ($data as $key => $row) {
$time[$key] = $row[1]; //unix timestamp
}
array_multisort( $time, SORT_ASC, $data);
?>