2016-08-16 5 views
0

У меня есть два JSon файла, и нужно синхронизировать их, если найдены изменения, ниже мой JSON-файл,Сравнить два JSon файл с пустым значением

enter image description here

является родитель (P) и еще один

enter image description here

является ребенок (C),

Вот мой код:

 foreach ($localJson->PushNotification as $key => $data) { 

      foreach ($this->news as $news) { 
       if($news->pushMessageId == $data->pushMessageId){ 

        if($news->Image != "" && $news->Image != $data->Image){ 
         echo "new image found <br />"; 
        } 
        if($news->documentFile != "" && $news->documentFile != $data->documentFile){ 
         echo "new documentFile found <br />"; 
        } 
        if($news->categoryIcon != "" && $news->categoryIcon != $data->categoryIcon){ 
         echo "new categoryIcon found <br />"; 
        } 
       } 
      } 
     } 

Проблема в том, каждый раз, когда это петле, это doesent сброшенного предыдущего значения петли, если ток порожние

Для Ex: первый цикл 1653 pushMessageId сравнивает PDF и обновление в детстве, но на следующий pushMessageId снова для сравнения требуется один и тот же pdf-файл, а не пустой поле.

ответ

0

Я проверил ваш код, его вид простое логическое условие и нужно обновить текущие объекты нового значения.

foreach ($localJson->PushNotification as $key => $data) { 

     foreach ($this->news as $news) { 
      if($news->pushMessageId == $data->pushMessageId){ 

       if($news->Image != "" && $news->Image != $data->Image){ 
        $data->Image = $news->Image; 
       } 
       if($news->documentFile != "" && $news->documentFile != $data->documentFile){ 
        $data->documentFile = $news->documentFile; 
       } 
       if($news->categoryIcon != "" && $news->categoryIcon != $data->categoryIcon){ 
        $data->categoryIcon = $news->categoryIcon; 
       } 
      } 
     } 
    } 

Я надеюсь, что это решение может сработать для вас.

Смежные вопросы