按时间戳对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);