按时间戳对PHP进行数组排序

按时间戳对PHP进行数组排序,php,arrays,sorting,Php,Arrays,Sorting,我无法按所需方式排序数组 这是我的阵列的一个示例输出: #共159行 排列 ( [0]=>阵列 ( [0]=>pastebin [1] => [2] => 1305025723 [3] =>/fcTGqQGD ) [1] =>阵列 ( [0]=>pastebin [1] => [2] => 1305025723 [3] =>/YQNk8yqa ) [2] =>阵列 ( [0]=>pastebin [1] => [2] => 1305025723 [3] =>/u2BNPrad ) [

我无法按所需方式排序数组

这是我的阵列的一个示例输出:

#共159行
排列
(
[0]=>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025723
[3] =>/fcTGqQGD
)
[1] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025723
[3] =>/YQNk8yqa
)
[2] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025723
[3] =>/u2BNPrad
)
[3] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025722
[3] =>/d/blogdialain.com
)
[4] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025722
[3] =>/d/shopcraze.com
)
[5] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025722
[3] =>/domains\u archive/175
)
[6] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025722
[3] =>/d/togou.com
)
[7] =>阵列
(
[0]=>pastebin
[1] =>  
[2] => 1305025722
[3] =>/W6NafmJa
)
)
请在此处填写阵列数据:

数据同时来自不同的数据库,因此我将数据放入数组的方式受到限制

[2]始终包含linux时间戳。现在,我希望整个数组按照该时间戳排序,首先使用最小值


如何完成此操作?

使用接受自定义函数的usort对数组进行排序:

您的函数可能类似于:

function cmp($a, $b)
{
    if ($a[2] == $b[2]) {
        return 0;
    }
    return ($a[2] < $b[2]) ? -1 : 1;
}
函数cmp($a,$b)
{
如果($a[2]==$b[2]){
返回0;
}
回报($a[2]<$b[2])?-1:1;
}

使用usort并创建自己的函数,

函数cmp($a,$b)
{
如果($a[2]==$b[2]){
返回0;
}
回报($a[2]<$b[2])?-1:1;
}
$data=数组(/*您的数据*/);
usort($data,“cmp”);

将数据插入一个临时表中,然后选择它,使用按时间戳排序,可能会更容易些。

您只需使用自定义排序即可完成此操作。因此,假设您的邮戳始终为索引2:

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

usort($array, "sortArray");
是最容易使用的,但您也可以查看。

这里有一个示例:


这可以通过以下代码实现:

usort($variable,function($a,$b){
如果($a['timestamp']=$b['timestamp']){
返回0;
}
返回($a['timestamp']<$b['timestamp'])?1:-1;
});
这将导致$variable的排序数组,假设时间戳为

$variable[0]['timestamp'];
$variable[0]['timestamp'];
等等

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

usort($array, "sortArray");
foreach ($array as $key => $node) {
   $timestamps[$key]    = $node[2];
}
array_multisort($timestamps, SORT_ASC, $array);