0

如果我有多个从不同来源(如 Facebook 提要、推特提要和博客提要)提取的数据数组/对象,我将如何合并它们以便将它们显示为按日期排序的混合集?

4

1 回答 1

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()

于 2012-07-08T05:15:27.127 回答