0

私の目標は、2 つの配列 1 を Google カレンダーから取得し、もう 1 つは Google スプレッドシートから取得することです。Calendar 配列に ID フィールドがあることを除いて、配列は両方とも同じようにフォーマットされます。

私の多次元 Google スプレッド シート配列には、次のような多数の配列が含まれています。

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++;                      

 }
4

1 に答える 1

0
<?php
$array1 = array (
'startDate' => '2013-03-29',
'endDate' => '2013-03-29',
'startTime' => '08:00',
'endTime' => '20:00',
'title' => 'Ext2 Joe',
 );

 $array2 = array (
 'startDate' => '2013-03-29',
 'endDate' => '2013-03-29',
 'startTime' => '08:00',
 'endTime' => '20:00',
 'title' => 'Ext2 Joe',
 'id' => 'enmjke5qpjs41q93vi8tibp85k',
  );

  $diff = my_array_diff($array1, $array2);
  echo '<pre>';
  print_r($diff);

  function my_array_diff($array1, $array2){
     $diff1 = array_diff_assoc($array1, $array2);
     $diff2 = array_diff_assoc($array2, $array1);
     $diff = array_merge($diff1, $diff2);

     return $diff;

  }
?>

出力:

Array
(
    [id] => enmjke5qpjs41q93vi8tibp85k
)
于 2013-03-05T20:25:37.543 に答える