有关一些背景信息,我正在尝试同步两个日历(其中一个是Google日历)
我正在使用这两个API从这两个日历中获取所有事件信息并将它们放入自己的数组中。所以这让我:
GoogleEventArray OtherEventArray
从长远来看,我想在两个阵列之间进行双向同步。但是,为了保持简单,我只想将OtherEventArray作为Master,将GoogleEventArray作为奴隶。
我不打算在每次运行脚本时删除整个Google日历并从OtherEventArray更新它,因为此脚本将在每分钟左右运行的cron作业上,以使Google日历保持最新状态。我只需要检查数组是否有变化或需要添加。
所以我只需要一些想法来获得同步这两个数组的最佳方法吗?
修改
也许更好的方法是找到这两个数组之间的不同,并将其添加到第三个数组,这样我就可以使用它来保存对谷歌日历的更改。
因为如果我只将两个数组合并为一个,我仍然需要将所有未更改的数据保存到Google日历中,从而导致不必要的工作量。
此外,我的两个数组中包含数据,因此您可以了解可以更改的内容,我需要检测标题,日期或描述中的更改
答案 0 :(得分:0)
查看array_merge
,array_merge_recursive
和array_uintersect
系列函数。您需要使用哪个取决于这些阵列的精确结构。
答案 1 :(得分:0)
你试过array_combine
。
您也可以添加数组:
$arrFirst = $arrSecond + $arrFirst
答案 2 :(得分:0)
如果您执行与
类似的操作,该怎么办?$a1[md5("event")]
$a2[md5("event")]
“event”实际上是您为"event name"."event datetime"
如果您对两者使用相同的原则,那么当您通过合并方法或简单循环事件进行合并时,已经存在只会相互覆盖,或者您甚至可以检查它们是否已存在。
但有一件事是,这对单向同步很有用。如果您将事件的标题或事物甚至事件本身更改为不同的日期,那些冲突将覆盖它。但是,您可以更聪明地让您知道甚至检测到事件已被移动/编辑过。