从2个阵列中选择下一个事件

时间:2011-09-30 01:59:56

标签: php mysql arrays

我有2张桌子

table 'events'
id      event_name    date           
1       buy milk      1319074920 // 10-20-2011
2       lunch         1321753320 // 11-20-2011

table 'people'
id      user       birthday
1       Jack       16508520 // 7-11-1970
2       Bill       180409320 // 9-20-1975

我想做的是:

[1]使用最接近当前日期/时间的事件创建一个数组>>解决

我的查询会生成一个像这样的数组

Array ( [0] => 
    Array ( 
         [date]       => 1319074920
         [event_name] => buy milk
    ) 
)

[2]创建一个生日最接近当前日期/时间的数组

不知道该怎么做。我可以查询数据库并检索用户和生日并循环显示结果,但需要将生日年份更改为当前年份,保持月和日不变。

[3]比较2个数组并选择一个最接近当前日期/时间的条目:生日或事件。

有什么建议吗?

查询代码

    $query = $this->db->query("
    SELECT *
    FROM   events
    WHERE  UTC_1 >= UNIX_TIMESTAMP()
    ORDER  BY UTC_1
    LIMIT  1
    ;");

1 个答案:

答案 0 :(得分:2)

如果您的查询提供了最接近的事件,那么只需对生日使用相同的查询,因为您的表是相同的结构。 一旦你有最接近的事件和最接近的生日,你可以在php中进行简单的比较,找到要显示的那个。

if (abs(bday[0]['date'] - time()) < abs(event[0]['date'] - time())) {
    // Show birthday
} else {
    // Show event
}