按日期合并并显示3个php数组

时间:2012-07-08 05:10:12

标签: php arrays date merge

如果我从不同的来源(例如facebook Feed,Twitter Feed和博客供稿)中提取了多个数组/数据对象,我将如何将它们合并以便将它们显示为按日期排序的混合集?

1 个答案:

答案 0 :(得分:0)

我将迭代每个数组并将各种时间格式转换为常用格式,可能是这样的unix时间戳

strtotime($time);

然后使用它作为数组的键:

foreach ($fb_arrays as $fb_array) {
  $key = strtotime($fb_array['time']);
  $fb_array_by_time[$key] = $fb_array;
}

然后我会

array_merge($array_one_by_time, $array_two_by_time, $array_three_by_time);

然后我会

asort()rasort(),具体取决于您要排序的方向

修改

为了避免碰撞,你可以这样做

foreach ($events as $event) {
  $key = strtotime($event['time']);
  $key .= $network;
  $n = 0;
  while (isset($event_by_time[$key . $n])) { $n++; }
  $event_by_time[$key . $n] = $event;
}

那么键应该是:

123134223facebook0
123134223twitter0
123134225facebook0
123134225facebook1
asort()

排序后