我有一个来自Facebook和Twitter流的JSON输出的合并数组,我想将这两个排序为一个,但它们提供两个不同的时间戳:
Facebook:[created_time] => 1299839651
Twitter:[created_at] => Mon Mar 07 16:33:49 +0000 2011
目前,输出包含来自Array ( [data] => Array ( [0] => Array ( [id] =>
(Facebook)开头且以[id_str] => 12345678964508161 ) )
(Twitter)结尾的两个平台的完整JSON内容。
在中间部分,它看起来像这样:&limit=25&until=0 ) [0] => Array ( [text] =>
(Facebook - > Twitter)。
我不知道如何处理这个问题。谢谢你的帮助。
答案 0 :(得分:1)
您可以使用strtotime()
将Twitter时间戳转换为更像Facebook时间戳的时间戳。
然后您只需根据数字时间戳
对它们进行排序答案 1 :(得分:0)
这应该有效,假设我正确理解你的问题。
<?php
// assume $array is your array of associative arrays with created_time
// being facebook timestamps, created_at being twitter
// takes as arguments two associative arrays with
// created_time keys to compare
function sort_by_created_time($arr1, $arr2)
{
if ($arr1['created_time'] == $arr2['created_time'])
{
return 0;
}
elseif ($arr1['created_time'] > $arr2['created_time'])
{
return 1;
}
else
{
return -1;
}
}
// go through each array, generate timestamps if needed
foreach ($array as &$row)
{
if (!isset($row['created_time']))
{
// convert date formats to timestamps if we need to
$row['created_time'] = strtotime($row['created_at']);
}
}
unset($row);
usort($array, "sort_by_created_time");