Моя цель - взять 2 массива 1, следующих из Календаря Google, другого из листа Google Spread. Массивы отформатированы одинаково, за исключением того, что в массиве Calendar есть поле ID.Сравните 2 многомерных массива с php
Мой многомерный массив Google Spread Sheet содержит ряд массивов, который выглядит как:
array (
'startDate' => '2013-03-29',
'endDate' => '2013-03-29',
'startTime' => '08:00',
'endTime' => '20:00',
'title' => 'Ext2 Joe',
)
Мой многомерный массив Календарь Google содержит ряд массивов выглядит следующим образом:
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
Я попробовал массив diff, но он не совпал. Я поместил массив diff внутри foreach ($ all_events как $ loop_all_events) и сравнил $ loop_all_events с $ array_final, но он оказался пустым. Когда я попытался напечатать_r результат. –
Я думаю, что часть аргумента array diff не работала, потому что у меня не было единственного набора уникальных данных для сравнения. Если мне нужно сравнить все 4 элемента в массиве, чтобы увидеть, является ли он уникальным. Это или я неправильно сформулировал это, я попробовал пару способов. –