我的目标是从Google日历获取2个数组1,并从Google Spread工作表获取另一个数组。数组的格式都是相同的,只是Calendar数组有一个ID字段。将2个多维数组与php比较
我的多维谷歌试算表数组包含了一些列的,看起来像:
array (
'startDate' => '2013-03-29',
'endDate' => '2013-03-29',
'startTime' => '08:00',
'endTime' => '20:00',
'title' => 'Ext2 Joe',
)
我的多维谷歌日历数组包含了一些列的样子:
array (
'startDate' => '2013-03-29',
'endDate' => '2013-03-29',
'startTime' => '08:00',
'endTime' => '20:00',
'title' => 'Ext2 Joe',
'id' => 'enmjke5qpjs41q93vi8tibp85k',
)
下面是代码我在用。它错过了很多在两者中都存在的事件。我一直在努力解决这个问题,并以不同的方式重新设置它的格式,似乎无法让它删除重复项,只留下一个包含剩余内容的数组$final_array
。因此,我可以将这些作品添加到Google日历中,因为它们尚不存在。
$k=0;
$match=0;
$remove_events=array_values($all_events);
$add_final_array=$final_array;
foreach($final_array as $array_final)
{
$h=0;
foreach ($all_events as $loop_all_events)
{
if ($array_final["startDate"]==$loop_all_events["startDate"]){
if ($array_final["endDate"]==$loop_all_events["endDate"]) {
if ($array_final["title"]==$loop_all_events["title"]) {
if($array_final["startTime"]==$loop_all_events["startTime"])
{
unset($add_final_array[$k]);
unset($remove_events[$h]);
$remove_events=array_values($remove_events);
$match++;
} } } }
$h++;
}
$k++;
}
你尝试[和array_diff(http://www.php.net/manual/en/function.array-diff.php)?或者如果将它们合并在一起会发生什么?会不会有你关心的冲突数据?或者你只是想将其中一个合并到另一个? – mkaatman 2013-03-05 20:19:13
我尝试了数组比较,但它没有找到匹配。我将数组diff放在foreach中($ all_events作为$ loop_all_events),并将$ loop_all_events与$ array_final进行比较,但它是空的。当我试图print_r的结果。 – 2013-03-05 20:23:26
我想为什么数组差异不起作用的部分原因是我没有一套独特的数据进行比较。我是否需要比较数组中的所有4个元素来查看它是否是唯一的。这或我有不正确的格式,我尝试了几种方法。 – 2013-03-05 20:26:08