Сравните два массива в Laravel Blade - PullRequest
0 голосов
/ 26 апреля 2020

Я пытаюсь сравнить два значения массива в режиме laravel blade. один из массивов вызывает из API. один из массивов вызывает из базы данных. Поэтому я хочу сопоставить число NI C в обоих массивах.

Я попытался сделать это с помощью вложенного l oop. Когда я это делаю, браузер получает ошибку 500.

Мой контроллер выглядит следующим образом:

 public function match_nic(){

     $url = 'https://www.becsystems.org/BSS/Api_Controller/index';

      $options = array('http' => array(
          'method'  => 'GET',
      ));
      $context  = stream_context_create($options);
      $response = file_get_contents($url, false, $context);

      $api_youths = json_decode($response);

      $database_youths = DB::table('youths')->get();

      return view('youths')->with(['api_youths'=> $api_youths, 'database_youths' => $database_youths]);

 }

Мой Blade-вид выглядит следующим образом

          @foreach($database_youths as $d_youth)
              @foreach($api_youths as $a_youth)
                  @if($a_youth->nic == $d_youth->nic)
                      {{$d_youth->nic}}
                  @else
                      {{'Not Matched'}}
                  @endif
              @endforeach
          @endforeach

Когда я запускаю страница, которую я получаю

enter image description here

Как я могу это исправить.

1 Ответ

0 голосов
/ 26 апреля 2020

Способ решения вашей проблемы:

  1. Получить список всех NI C из вашего массива $api_youths до $nics = ['nic1', 'nic2', ...]. Для этой цели вы можете использовать следующий код:
$nics = Arr::pluck($api_youths, 'nic');
Получить список элементов базы данных, которые имеют эти NI C `$ matched_nics = DB :: table ('youths') -> whereIn ('ni c', $ nics); Получить список элементов базы данных, которые не имеют этих NI C $unmatched_nics = DB::table('youths')->whereNotIn('nic', $nics); Показать результат в вашем блейде.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...