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