PHP/JSON:在一个数组中对两种不同的时间戳格式进行排序
我从Facebook和Twitter流的JSON输出中得到了一个合并数组,我想将这两个数组归为一个,但它们提供了两个不同的时间戳: Facebook:PHP/JSON:在一个数组中对两种不同的时间戳格式进行排序,php,json,facebook,datetime,sorting,Php,Json,Facebook,Datetime,Sorting,我从Facebook和Twitter流的JSON输出中得到了一个合并数组,我想将这两个数组归为一个,但它们提供了两个不同的时间戳: Facebook:[创建时间]=>1299839651 推特:[创建时间]=>2011年3月7日星期一16:33:49+0000 目前,输出包含两个平台的完整JSON内容,从Array([data]=>Array([0]=>Array([id]=>(Facebook)开始,到[id\u str]=>12345678964508161)结束)。 中间部分看起来是这样的
[创建时间]=>1299839651
推特:[创建时间]=>2011年3月7日星期一16:33:49+0000
目前,输出包含两个平台的完整JSON内容,从Array([data]=>Array([0]=>Array([id]=>
(Facebook)开始,到[id\u str]=>12345678964508161)结束)。
中间部分看起来是这样的:<代码>和限制= 25和直到0)[0 ] = >数组([TeX]=< /Cord>(脸谱网推特)。
我不知道如何处理这个问题。谢谢你的帮助。假设我正确理解了你的问题,这应该可以
<?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");
您可以使用strotime()
将Twitter时间戳转换为更像Facebook时间戳的时间戳
然后,您只需根据数字时间戳对它们进行排序